[Pkg-mono-svn-commits] [SCM] mono branch, master, updated. debian/2.4.3+dfsg-1-8-g8d85470

Mirco Bauer meebey at meebey.net
Wed Feb 17 20:48:10 UTC 2010


The following commit has been merged in the master branch:
commit cdee884eb85a3392f0a8d81a45816fbd984faf2a
Author: Mirco Bauer <meebey at meebey.net>
Date:   Wed Feb 17 21:23:52 2010 +0100

    Imported Upstream version 2.4.4~svn151842

diff --git a/ChangeLog b/ChangeLog
index 7b0a01c..8be0f45 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2009-12-22  Geoff Norton  <gnorton at novell.com>
+
+	* configure.in: Fix invalid escaping.  Patch from Spina from
+	www.slacky.eu.
+
+2009-12-11  Zoltan Varga  <vargaz at gmail.com>
+
+	* configure.in: Applied patch from Matt McClellan (matt at mc-c.net). Add a check
+	for 2 parameter sched_setaffinity in older glibc versions. Fixes
+	#564000.
+
 2009-06-11  Zoltan Varga  <vargaz at gmail.com>
 
 	* configure.in: Disable dtrace support if dtrace doesn't support the
diff --git a/Makefile.in b/Makefile.in
index f6636d3..86cfa95 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -53,6 +55,7 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = config.h
 CONFIG_CLEAN_FILES = mono-uninstalled.pc
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -65,15 +68,43 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 DATA = $(noinst_DATA)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+	distdir dist dist-all distcheck
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
 am__remove_distdir = \
-  { test ! -d $(distdir) \
-    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
-         && rm -fr $(distdir); }; }
+  { test ! -d "$(distdir)" \
+    || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+         && rm -fr "$(distdir)"; }; }
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
 DIST_ARCHIVES = $(distdir).tar.gz
 GZIP_ENV = --best
 distuninstallcheck_listfiles = find . -type f -print
@@ -168,6 +199,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -284,15 +316,15 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
-	      cd $(srcdir) && $(AUTOMAKE) --foreign  \
+	      echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+	      $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
 		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign  Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -308,9 +340,10 @@ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENC
 	$(SHELL) ./config.status --recheck
 
 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(srcdir) && $(AUTOCONF)
+	$(am__cd) $(srcdir) && $(AUTOCONF)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
 
 config.h: stamp-h1
 	@if test ! -f $@; then \
@@ -322,7 +355,7 @@ stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
 	@rm -f stamp-h1
 	cd $(top_builddir) && $(SHELL) ./config.status config.h
 $(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) 
-	cd $(top_srcdir) && $(AUTOHEADER)
+	($(am__cd) $(top_srcdir) && $(AUTOHEADER))
 	rm -f stamp-h1
 	touch $@
 
@@ -338,7 +371,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
@@ -364,7 +397,7 @@ $(RECURSIVE_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done; \
 	if test "$$dot_seen" = "no"; then \
@@ -398,16 +431,16 @@ $(RECURSIVE_CLEAN_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done && test -z "$$fail"
 tags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 	done
 ctags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
 	done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -415,14 +448,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
 	  include_option=--etags-include; \
@@ -434,7 +467,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test ! -f $$subdir/TAGS || \
-	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
 	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
@@ -443,36 +476,41 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
 	$(am__remove_distdir)
-	test -d $(distdir) || mkdir $(distdir)
+	test -d "$(distdir)" || mkdir "$(distdir)"
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	list='$(DISTFILES)'; \
@@ -488,29 +526,44 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
-	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test -d "$(distdir)/$$subdir" \
 	    || $(MKDIR_P) "$(distdir)/$$subdir" \
 	    || exit 1; \
-	    distdir=`$(am__cd) $(distdir) && pwd`; \
-	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
-	    (cd $$subdir && \
+	  fi; \
+	done
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+	    $(am__relativize); \
+	    new_distdir=$$reldir; \
+	    dir1=$$subdir; dir2="$(top_distdir)"; \
+	    $(am__relativize); \
+	    new_top_distdir=$$reldir; \
+	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+	    ($(am__cd) $$subdir && \
 	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$top_distdir" \
-	        distdir="$$distdir/$$subdir" \
+	        top_distdir="$$new_top_distdir" \
+	        distdir="$$new_distdir" \
 		am__remove_distdir=: \
 		am__skip_length_check=: \
+		am__skip_mode_fix=: \
 	        distdir) \
 	      || exit 1; \
 	  fi; \
@@ -518,11 +571,12 @@ distdir: $(DISTFILES)
 	$(MAKE) $(AM_MAKEFLAGS) \
 	  top_distdir="$(top_distdir)" distdir="$(distdir)" \
 	  dist-hook
-	-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+	-test -n "$(am__skip_mode_fix)" \
+	|| find "$(distdir)" -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
 	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
 	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
 	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
-	|| chmod -R a+r $(distdir)
+	|| chmod -R a+r "$(distdir)"
 dist-gzip: distdir
 	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
 	$(am__remove_distdir)
@@ -535,6 +589,10 @@ dist-lzma: distdir
 	tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
 	$(am__remove_distdir)
 
+dist-xz: distdir
+	tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
+	$(am__remove_distdir)
+
 dist-tarZ: distdir
 	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
 	$(am__remove_distdir)
@@ -563,6 +621,8 @@ distcheck: dist
 	  bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
 	*.tar.lzma*) \
 	  unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
+	*.tar.xz*) \
+	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
 	*.tar.Z*) \
 	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
 	*.shar.gz*) \
@@ -574,9 +634,11 @@ distcheck: dist
 	mkdir $(distdir)/_build
 	mkdir $(distdir)/_inst
 	chmod a-w $(distdir)
+	test -d $(distdir)/_build || exit 0; \
 	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
 	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
-	  && cd $(distdir)/_build \
+	  && am__cwd=`pwd` \
+	  && $(am__cd) $(distdir)/_build \
 	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
 	    $(DISTCHECK_CONFIGURE_FLAGS) \
 	  && $(MAKE) $(AM_MAKEFLAGS) \
@@ -598,13 +660,15 @@ distcheck: dist
 	  && rm -rf "$$dc_destdir" \
 	  && $(MAKE) $(AM_MAKEFLAGS) dist \
 	  && rm -rf $(DIST_ARCHIVES) \
-	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+	  && cd "$$am__cwd" \
+	  || exit 1
 	$(am__remove_distdir)
 	@(echo "$(distdir) archives ready for distribution: "; \
 	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
 	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
 distuninstallcheck:
-	@cd $(distuninstallcheck_dir) \
+	@$(am__cd) '$(distuninstallcheck_dir)' \
 	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
 	   || { echo "ERROR: files left after uninstall:" ; \
 	        if test -n "$(DESTDIR)"; then \
@@ -646,6 +710,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
 
 maintainer-clean-generic:
@@ -667,6 +732,8 @@ dvi-am:
 
 html: html-recursive
 
+html-am:
+
 info: info-recursive
 
 info-am:
@@ -675,18 +742,28 @@ install-data-am:
 
 install-dvi: install-dvi-recursive
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-recursive
 
+install-html-am:
+
 install-info: install-info-recursive
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-recursive
 
+install-pdf-am:
+
 install-ps: install-ps-recursive
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -709,14 +786,14 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
-	install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
+	ctags-recursive install-am install-strip tags-recursive
 
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
 	all all-am am--refresh check check-am clean clean-generic \
 	clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
-	dist-gzip dist-hook dist-lzma dist-shar dist-tarZ dist-zip \
-	distcheck distclean distclean-generic distclean-hdr \
+	dist-gzip dist-hook dist-lzma dist-shar dist-tarZ dist-xz \
+	dist-zip distcheck distclean distclean-generic distclean-hdr \
 	distclean-libtool distclean-tags distcleancheck distdir \
 	distuninstallcheck dvi dvi-am html html-am info info-am \
 	install install-am install-data install-data-am install-dvi \
@@ -795,6 +872,7 @@ bootstrap: all
 patch-quiet:
 	find mono -name Makefile -exec scripts/patch-quiet.sh {} \;
 	find libgc -name Makefile -exec scripts/patch-quiet.sh {} \;
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/aclocal.m4 b/aclocal.m4
index 6e6dacb..190067a 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.10.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.11 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -13,13 +13,13 @@
 
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(AC_AUTOCONF_VERSION, [2.63],,
-[m4_warning([this file was generated for autoconf 2.63.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.64],,
+[m4_warning([this file was generated for autoconf 2.64.
 You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically `autoreconf'.])])
 
-# Copyright (C) 2002, 2003, 2005, 2006, 2007  Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -31,10 +31,10 @@ To do so, use the procedure documented by the package, typically `autoreconf'.])
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.10'
+[am__api_version='1.11'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.10.1], [],
+m4_if([$1], [1.11], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -48,12 +48,12 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # AM_SET_CURRENT_AUTOMAKE_VERSION
 # -------------------------------
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
-# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.10.1])dnl
+[AM_AUTOMAKE_VERSION([1.11])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-_AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)])
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # Figure out how to run the assembler.                      -*- Autoconf -*-
 
@@ -155,14 +155,14 @@ AU_DEFUN([fp_PROG_CC_STDC])
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 8
+# serial 9
 
 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
 # -------------------------------------
@@ -175,6 +175,7 @@ AC_SUBST([$1_TRUE])dnl
 AC_SUBST([$1_FALSE])dnl
 _AM_SUBST_NOTMAKE([$1_TRUE])dnl
 _AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
 if $2; then
   $1_TRUE=
   $1_FALSE='#'
@@ -188,14 +189,14 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 9
+# serial 10
 
 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
@@ -252,6 +253,16 @@ AC_CACHE_CHECK([dependency style of $depcc],
   if test "$am_compiler_list" = ""; then
      am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
   fi
+  am__universal=false
+  m4_case([$1], [CC],
+    [case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac],
+    [CXX],
+    [case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac])
+
   for depmode in $am_compiler_list; do
     # Setup a source with many dependencies, because some compilers
     # like to wrap large dependency lists on column 80 (with \), and
@@ -269,7 +280,17 @@ AC_CACHE_CHECK([dependency style of $depcc],
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
     case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
     nosideeffect)
       # after this tag, mechanisms are not by side-effect, so they'll
       # only be used when explicitly requested
@@ -279,19 +300,23 @@ AC_CACHE_CHECK([dependency style of $depcc],
 	break
       fi
       ;;
+    msvisualcpp | msvcmsys)
+      # This compiler won't grok `-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
     none) break ;;
     esac
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.
     if depmode=$depmode \
-       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       source=sub/conftest.c object=$am__obj \
        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
          >/dev/null 2>conftest.err &&
        grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
       # icc doesn't choke on unknown options, it will just issue warnings
       # or remarks (even with -Werror).  So we grep stderr for any message
@@ -348,57 +373,68 @@ _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-#serial 3
+#serial 5
 
 # _AM_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
 AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[for mf in $CONFIG_FILES; do
-  # Strip MF so we end up with the name of the file.
-  mf=`echo "$mf" | sed -e 's/:.*$//'`
-  # Check whether this is an Automake generated Makefile or not.
-  # We used to match only the files named `Makefile.in', but
-  # some people rename them; so instead we look at the file content.
-  # Grep'ing the first line is not enough: some people post-process
-  # each Makefile.in and add a new line on top of each file to say so.
-  # Grep'ing the whole file is not good either: AIX grep has a line
-  # limit of 2048, but all sed's we know have understand at least 4000.
-  if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-    dirpart=`AS_DIRNAME("$mf")`
-  else
-    continue
-  fi
-  # Extract the definition of DEPDIR, am__include, and am__quote
-  # from the Makefile without running `make'.
-  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-  test -z "$DEPDIR" && continue
-  am__include=`sed -n 's/^am__include = //p' < "$mf"`
-  test -z "am__include" && continue
-  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-  # When using ansi2knr, U may be empty or an underscore; expand it
-  U=`sed -n 's/^U = //p' < "$mf"`
-  # Find all dependency output files, they are included files with
-  # $(DEPDIR) in their names.  We invoke sed twice because it is the
-  # simplest approach to changing $(DEPDIR) to its actual value in the
-  # expansion.
-  for file in `sed -n "
-    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
-    # Make sure the directory exists.
-    test -f "$dirpart/$file" && continue
-    fdir=`AS_DIRNAME(["$file"])`
-    AS_MKDIR_P([$dirpart/$fdir])
-    # echo "creating $dirpart/$file"
-    echo '# dummy' > "$dirpart/$file"
+[{
+  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # are listed without --file.  Let's play safe and only enable the eval
+  # if we detect the quoting.
+  case $CONFIG_FILES in
+  *\'*) eval set x "$CONFIG_FILES" ;;
+  *)   set x $CONFIG_FILES ;;
+  esac
+  shift
+  for mf
+  do
+    # Strip MF so we end up with the name of the file.
+    mf=`echo "$mf" | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile or not.
+    # We used to match only the files named `Makefile.in', but
+    # some people rename them; so instead we look at the file content.
+    # Grep'ing the first line is not enough: some people post-process
+    # each Makefile.in and add a new line on top of each file to say so.
+    # Grep'ing the whole file is not good either: AIX grep has a line
+    # limit of 2048, but all sed's we know have understand at least 4000.
+    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+      dirpart=`AS_DIRNAME("$mf")`
+    else
+      continue
+    fi
+    # Extract the definition of DEPDIR, am__include, and am__quote
+    # from the Makefile without running `make'.
+    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+    test -z "$DEPDIR" && continue
+    am__include=`sed -n 's/^am__include = //p' < "$mf"`
+    test -z "am__include" && continue
+    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+    # When using ansi2knr, U may be empty or an underscore; expand it
+    U=`sed -n 's/^U = //p' < "$mf"`
+    # Find all dependency output files, they are included files with
+    # $(DEPDIR) in their names.  We invoke sed twice because it is the
+    # simplest approach to changing $(DEPDIR) to its actual value in the
+    # expansion.
+    for file in `sed -n "
+      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+      # Make sure the directory exists.
+      test -f "$dirpart/$file" && continue
+      fdir=`AS_DIRNAME(["$file"])`
+      AS_MKDIR_P([$dirpart/$fdir])
+      # echo "creating $dirpart/$file"
+      echo '# dummy' > "$dirpart/$file"
+    done
   done
-done
+}
 ])# _AM_OUTPUT_DEPENDENCY_COMMANDS
 
 
@@ -430,13 +466,13 @@ AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
 # Do all the work for Automake.                             -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2008 Free Software Foundation, Inc.
+# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 13
+# serial 16
 
 # This macro actually does too much.  Some checks are only needed if
 # your package does certain things.  But this isn't really a big deal.
@@ -453,7 +489,7 @@ AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
 # arguments mandatory, and then we can depend on a new Autoconf
 # release and drop the old call support.
 AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.60])dnl
+[AC_PREREQ([2.62])dnl
 dnl Autoconf wants to disallow AM_ names.  We explicitly allow
 dnl the ones we care about.
 m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
@@ -504,8 +540,8 @@ AM_MISSING_PROG(AUTOCONF, autoconf)
 AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
 AM_MISSING_PROG(AUTOHEADER, autoheader)
 AM_MISSING_PROG(MAKEINFO, makeinfo)
-AM_PROG_INSTALL_SH
-AM_PROG_INSTALL_STRIP
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
 AC_REQUIRE([AM_PROG_MKDIR_P])dnl
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
@@ -513,24 +549,37 @@ AC_REQUIRE([AC_PROG_AWK])dnl
 AC_REQUIRE([AC_PROG_MAKE_SET])dnl
 AC_REQUIRE([AM_SET_LEADING_DOT])dnl
 _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
-              [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
-	      		     [_AM_PROG_TAR([v7])])])
+	      [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+			     [_AM_PROG_TAR([v7])])])
 _AM_IF_OPTION([no-dependencies],,
 [AC_PROVIDE_IFELSE([AC_PROG_CC],
-                  [_AM_DEPENDENCIES(CC)],
-                  [define([AC_PROG_CC],
-                          defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+		  [_AM_DEPENDENCIES(CC)],
+		  [define([AC_PROG_CC],
+			  defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_CXX],
-                  [_AM_DEPENDENCIES(CXX)],
-                  [define([AC_PROG_CXX],
-                          defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+		  [_AM_DEPENDENCIES(CXX)],
+		  [define([AC_PROG_CXX],
+			  defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_OBJC],
-                  [_AM_DEPENDENCIES(OBJC)],
-                  [define([AC_PROG_OBJC],
-                          defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+		  [_AM_DEPENDENCIES(OBJC)],
+		  [define([AC_PROG_OBJC],
+			  defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
 ])
+_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
+dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
+dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
+dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+  [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
 ])
 
+dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
 
 # When config.status generates a header, we must update the stamp-h file.
 # This file resides in the same directory as the config header
@@ -553,7 +602,7 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2008  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -564,7 +613,14 @@ echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_co
 # Define $install_sh.
 AC_DEFUN([AM_PROG_INSTALL_SH],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
+if test x"${install_sh}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+  *)
+    install_sh="\${SHELL} $am_aux_dir/install-sh"
+  esac
+fi
 AC_SUBST(install_sh)])
 
 # Copyright (C) 2003, 2005  Free Software Foundation, Inc.
@@ -591,27 +647,38 @@ AC_SUBST([am__leading_dot])])
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
+# serial 5
 
+# AM_MAINTAINER_MODE([DEFAULT-MODE])
+# ----------------------------------
+# Control maintainer-specific portions of Makefiles.
+# Default is to disable them, unless `enable' is passed literally.
+# For symmetry, `disable' may be passed as well.  Anyway, the user
+# can override the default with the --enable/--disable switch.
 AC_DEFUN([AM_MAINTAINER_MODE],
-[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
-  dnl maintainer-mode is disabled by default
-  AC_ARG_ENABLE(maintainer-mode,
-[  --enable-maintainer-mode  enable make rules and dependencies not useful
+[m4_case(m4_default([$1], [disable]),
+       [enable], [m4_define([am_maintainer_other], [disable])],
+       [disable], [m4_define([am_maintainer_other], [enable])],
+       [m4_define([am_maintainer_other], [enable])
+        m4_warn([syntax], [unexpected argument to AM@&t at _MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
+  dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+  AC_ARG_ENABLE([maintainer-mode],
+[  --][am_maintainer_other][-maintainer-mode  am_maintainer_other make rules and dependencies not useful
 			  (and sometimes confusing) to the casual installer],
-      USE_MAINTAINER_MODE=$enableval,
-      USE_MAINTAINER_MODE=no)
+      [USE_MAINTAINER_MODE=$enableval],
+      [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
   AC_MSG_RESULT([$USE_MAINTAINER_MODE])
-  AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
+  AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
   MAINT=$MAINTAINER_MODE_TRUE
-  AC_SUBST(MAINT)dnl
+  AC_SUBST([MAINT])dnl
 ]
 )
 
@@ -619,13 +686,13 @@ AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
 
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005, 2009  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 3
+# serial 4
 
 # AM_MAKE_INCLUDE()
 # -----------------
@@ -634,7 +701,7 @@ AC_DEFUN([AM_MAKE_INCLUDE],
 [am_make=${MAKE-make}
 cat > confinc << 'END'
 am__doit:
-	@echo done
+	@echo this is the am__doit target
 .PHONY: am__doit
 END
 # If we don't find an include directive, just comment out the code.
@@ -644,24 +711,24 @@ am__quote=
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
-   am__include=include
-   am__quote=
-   _am_result=GNU
-fi
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+  am__include=include
+  am__quote=
+  _am_result=GNU
+  ;;
+esac
 # Now try BSD make style include.
 if test "$am__include" = "#"; then
    echo '.include "confinc"' > confmf
-   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
-      am__include=.include
-      am__quote="\""
-      _am_result=BSD
-   fi
+   case `$am_make -s -f confmf 2> /dev/null` in #(
+   *the\ am__doit\ target*)
+     am__include=.include
+     am__quote="\""
+     _am_result=BSD
+     ;;
+   esac
 fi
 AC_SUBST([am__include])
 AC_SUBST([am__quote])
@@ -671,14 +738,14 @@ rm -f confinc confmf
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 5
+# serial 6
 
 # AM_MISSING_PROG(NAME, PROGRAM)
 # ------------------------------
@@ -695,7 +762,14 @@ AC_SUBST($1)])
 AC_DEFUN([AM_MISSING_HAS_RUN],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
 AC_REQUIRE_AUX_FILE([missing])dnl
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+if test x"${MISSING+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+  *)
+    MISSING="\${SHELL} $am_aux_dir/missing" ;;
+  esac
+fi
 # Use eval to expand $SHELL
 if eval "$MISSING --run true"; then
   am_missing_run="$MISSING --run "
@@ -733,13 +807,13 @@ esac
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005, 2008  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 3
+# serial 4
 
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
@@ -756,7 +830,7 @@ AC_DEFUN([_AM_SET_OPTION],
 # ----------------------------------
 # OPTIONS is a space-separated list of Automake options.
 AC_DEFUN([_AM_SET_OPTIONS],
-[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
 
 # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
 # -------------------------------------------
@@ -783,14 +857,14 @@ AC_DEFUN([AM_RUN_LOG],
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
+# serial 5
 
 # AM_SANITY_CHECK
 # ---------------
@@ -799,16 +873,29 @@ AC_DEFUN([AM_SANITY_CHECK],
 # Just in case
 sleep 1
 echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name.  Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+  *[[\\\"\#\$\&\'\`$am_lf]]*)
+    AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+  *[[\\\"\#\$\&\'\`$am_lf\ \	]]*)
+    AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+esac
+
 # Do `set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
    if test "$[*]" = "X"; then
       # -L didn't work.
-      set X `ls -t $srcdir/configure conftest.file`
+      set X `ls -t "$srcdir/configure" conftest.file`
    fi
    rm -f conftest.file
    if test "$[*]" != "X $srcdir/configure conftest.file" \
@@ -861,18 +948,25 @@ fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006  Free Software Foundation, Inc.
+# Copyright (C) 2006, 2008  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 2
+
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
 # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
 # This macro is traced by Automake.
 AC_DEFUN([_AM_SUBST_NOTMAKE])
 
+# AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
 # Check how to create a tarball.                            -*- Autoconf -*-
 
 # Copyright (C) 2004, 2005  Free Software Foundation, Inc.
diff --git a/config.guess b/config.guess
index e6b5d5b..da83314 100755
--- a/config.guess
+++ b/config.guess
@@ -4,7 +4,7 @@
 #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
 #   Free Software Foundation, Inc.
 
-timestamp='2008-01-08'
+timestamp='2009-04-27'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -139,16 +139,6 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
-case "${UNAME_MACHINE}" in
-    i?86)
-	test -z "$VENDOR" && VENDOR=pc
-	;;
-    *)
-	test -z "$VENDOR" && VENDOR=unknown
-	;;
-esac
-test -f /etc/SuSE-release -o -f /.buildenv && VENDOR=suse
-
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -334,6 +324,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	case `/usr/bin/uname -p` in
 	    sparc) echo sparc-icl-nx7; exit ;;
 	esac ;;
+    s390x:SunOS:*:*)
+	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
     sun4H:SunOS:5.*:*)
 	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
@@ -341,7 +334,20 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
-	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	eval $set_cc_for_build
+	SUN_ARCH="i386"
+	# If there is a compiler, see if it is configured for 64-bit objects.
+	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+	# This test works for both compilers.
+	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		grep IS_64BIT_ARCH >/dev/null
+	    then
+		SUN_ARCH="x86_64"
+	    fi
+	fi
+	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
     sun4*:SunOS:6*:*)
 	# According to config.sub, this is the proper way to canonicalize
@@ -806,7 +812,7 @@ EOF
 	    x86)
 		echo i586-pc-interix${UNAME_RELEASE}
 		exit ;;
-	    EM64T | authenticamd)
+	    EM64T | authenticamd | genuineintel)
 		echo x86_64-unknown-interix${UNAME_RELEASE}
 		exit ;;
 	    IA64)
@@ -850,13 +856,13 @@ EOF
 	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
 	    | grep -q __ARM_EABI__
 	then
-	    echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+	    echo ${UNAME_MACHINE}-unknown-linux-gnu
 	else
-	    echo ${UNAME_MACHINE}-${VENDOR}-linux-gnueabi
+	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi
 	fi
 	exit ;;
     avr32*:Linux:*:*)
-	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     cris:Linux:*:*)
 	echo cris-axis-linux-gnu
@@ -865,16 +871,16 @@ EOF
 	echo crisv32-axis-linux-gnu
 	exit ;;
     frv:Linux:*:*)
-    	echo frv-${VENDOR}-linux-gnu
+    	echo frv-unknown-linux-gnu
 	exit ;;
     ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     m32r*:Linux:*:*)
-	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     mips:Linux:*:*)
 	eval $set_cc_for_build
@@ -897,7 +903,7 @@ EOF
 		s: ::g
 		p
 	    }'`"
-	test x"${CPU}" != x && { echo "${CPU}-${VENDOR}-linux-gnu"; exit; }
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
     mips64:Linux:*:*)
 	eval $set_cc_for_build
@@ -920,16 +926,16 @@ EOF
 		s: ::g
 		p
 	    }'`"
-	test x"${CPU}" != x && { echo "${CPU}-${VENDOR}-linux-gnu"; exit; }
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
     or32:Linux:*:*)
-	echo or32-${VENDOR}-linux-gnu
+	echo or32-unknown-linux-gnu
 	exit ;;
     ppc:Linux:*:*)
-	echo powerpc-${VENDOR}-linux-gnu
+	echo powerpc-unknown-linux-gnu
 	exit ;;
     ppc64:Linux:*:*)
-	echo powerpc64-${VENDOR}-linux-gnu
+	echo powerpc64-unknown-linux-gnu
 	exit ;;
     alpha:Linux:*:*)
 	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -943,39 +949,42 @@ EOF
         esac
 	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
 	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu${LIBC}
+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	exit ;;
+    padre:Linux:*:*)
+	echo sparc-unknown-linux-gnu
 	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-	  PA7*) echo hppa1.1-${VENDOR}-linux-gnu ;;
-	  PA8*) echo hppa2.0-${VENDOR}-linux-gnu ;;
-	  *)    echo hppa-${VENDOR}-linux-gnu ;;
+	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
+	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
+	  *)    echo hppa-unknown-linux-gnu ;;
 	esac
 	exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-${VENDOR}-linux-gnu
+	echo hppa64-unknown-linux-gnu
 	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
 	echo ${UNAME_MACHINE}-ibm-linux
 	exit ;;
     sh64*:Linux:*:*)
-    	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     vax:Linux:*:*)
 	echo ${UNAME_MACHINE}-dec-linux-gnu
 	exit ;;
     x86_64:Linux:*:*)
-	echo x86_64-${VENDOR}-linux-gnu
+	echo x86_64-unknown-linux-gnu
 	exit ;;
     xtensa*:Linux:*:*)
-    	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     i*86:Linux:*:*)
 	# The BFD linker knows what the default object file format is, so
@@ -990,18 +999,15 @@ EOF
 				    p'`
         case "$ld_supported_targets" in
 	  elf32-i386)
-		TENTATIVE="${UNAME_MACHINE}-${VENDOR}-linux-gnu"
+		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
 		;;
 	  a.out-i386-linux)
-		echo "${UNAME_MACHINE}-${VENDOR}-linux-gnuaout"
-		exit ;;
-	  coff-i386)
-		echo "${UNAME_MACHINE}-${VENDOR}-linux-gnucoff"
+		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
 		exit ;;
 	  "")
 		# Either a pre-BFD a.out linker (linux-gnuoldld) or
 		# one that does not give us useful --help.
-		echo "${UNAME_MACHINE}-${VENDOR}-linux-gnuoldld"
+		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
 		exit ;;
 	esac
 	# Determine whether the default compiler is a.out or elf
@@ -1035,7 +1041,7 @@ EOF
 		p
 	    }'`"
 	test x"${LIBC}" != x && {
-		echo "${UNAME_MACHINE}-${VENDOR}-linux-${LIBC}"
+		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
 		exit
 	}
 	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
@@ -1112,8 +1118,11 @@ EOF
     pc:*:*:*)
 	# Left here for compatibility:
         # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i386.
-	echo i386-pc-msdosdjgpp
+        # the processor, so we play safe by assuming i586.
+	# Note: whatever this is, it MUST be the same as what config.sub
+	# prints for the "djgpp" host, or else GDB configury will decide that
+	# this is a cross-build.
+	echo i586-pc-msdosdjgpp
         exit ;;
     Intel:Mach:3*:*)
 	echo i386-pc-mach3
@@ -1151,6 +1160,16 @@ EOF
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
           && { echo i486-ncr-sysv4; exit; } ;;
+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+	OS_REL='.3'
+	test -r /etc/.relid \
+	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
 	echo m68k-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
@@ -1226,6 +1245,9 @@ EOF
     BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
 	echo i586-pc-beos
 	exit ;;
+    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
+	echo i586-pc-haiku
+	exit ;;
     SX-4:SUPER-UX:*:*)
 	echo sx4-nec-superux${UNAME_RELEASE}
 	exit ;;
@@ -1334,6 +1356,9 @@ EOF
     i*86:rdos:*:*)
 	echo ${UNAME_MACHINE}-pc-rdos
 	exit ;;
+    i*86:AROS:*:*)
+	echo ${UNAME_MACHINE}-pc-aros
+	exit ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1494,9 +1519,9 @@ This script, last modified $timestamp, has failed to recognize
 the operating system you are using. It is advised that you
 download the most up to date version of the config scripts from
 
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
 and
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
 
 If the version you run ($0) is already up to date, please
 send the following data and any information you think might be
diff --git a/config.h.in b/config.h.in
index 870c74d..1e704a4 100644
--- a/config.h.in
+++ b/config.h.in
@@ -57,6 +57,9 @@
 /* Enable DTrace probes */
 #undef ENABLE_DTRACE
 
+/* Have GLIBC_BEFORE_2_3_4_SCHED_SETAFFINITY */
+#undef GLIBC_BEFORE_2_3_4_SCHED_SETAFFINITY
+
 /* Has the 'aintl' function */
 #undef HAVE_AINTL
 
@@ -384,13 +387,13 @@
 /* Define to 1 if you have the <string.h> header file. */
 #undef HAVE_STRING_H
 
-/* Define to 1 if `d_off' is member of `struct dirent'. */
+/* Define to 1 if `struct dirent' is a member of `d_off'. */
 #undef HAVE_STRUCT_DIRENT_D_OFF
 
-/* Define to 1 if `d_reclen' is member of `struct dirent'. */
+/* Define to 1 if `struct dirent' is a member of `d_reclen'. */
 #undef HAVE_STRUCT_DIRENT_D_RECLEN
 
-/* Define to 1 if `d_type' is member of `struct dirent'. */
+/* Define to 1 if `struct dirent' is a member of `d_type'. */
 #undef HAVE_STRUCT_DIRENT_D_TYPE
 
 /* Define to 1 if the system has the type `struct flock'. */
@@ -402,7 +405,7 @@
 /* Have struct ip_mreqn */
 #undef HAVE_STRUCT_IP_MREQN
 
-/* Define to 1 if `kp_proc' is member of `struct kinfo_proc'. */
+/* Define to 1 if `struct kinfo_proc' is a member of `kp_proc'. */
 #undef HAVE_STRUCT_KINFO_PROC_KP_PROC
 
 /* Define to 1 if the system has the type `struct pollfd'. */
@@ -607,6 +610,9 @@
 /* Define to the one symbol short name of this package. */
 #undef PACKAGE_TARNAME
 
+/* Define to the home page for this package. */
+#undef PACKAGE_URL
+
 /* Define to the version of this package. */
 #undef PACKAGE_VERSION
 
diff --git a/config.sub b/config.sub
index 6759825..a39437d 100755
--- a/config.sub
+++ b/config.sub
@@ -4,7 +4,7 @@
 #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
 #   Free Software Foundation, Inc.
 
-timestamp='2008-01-16'
+timestamp='2009-04-17'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -122,6 +122,7 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
   nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
   uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  kopensolaris*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
@@ -249,13 +250,16 @@ case $basic_machine in
 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 	| i370 | i860 | i960 | ia64 \
 	| ip2k | iq2000 \
+	| lm32 \
 	| m32c | m32r | m32rle | m68000 | m68k | m88k \
-	| maxq | mb | microblaze | mcore | mep \
+	| maxq | mb | microblaze | mcore | mep | metag \
 	| mips | mipsbe | mipseb | mipsel | mipsle \
 	| mips16 \
 	| mips64 | mips64el \
-	| mips64vr | mips64vrel \
+	| mips64octeon | mips64octeonel \
 	| mips64orion | mips64orionel \
+	| mips64r5900 | mips64r5900el \
+	| mips64vr | mips64vrel \
 	| mips64vr4100 | mips64vr4100el \
 	| mips64vr4300 | mips64vr4300el \
 	| mips64vr5000 | mips64vr5000el \
@@ -268,6 +272,7 @@ case $basic_machine in
 	| mipsisa64sr71k | mipsisa64sr71kel \
 	| mipstx39 | mipstx39el \
 	| mn10200 | mn10300 \
+	| moxie \
 	| mt \
 	| msp430 \
 	| nios | nios2 \
@@ -277,7 +282,7 @@ case $basic_machine in
 	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
 	| pyramid \
 	| score \
-	| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
 	| sh64 | sh64le \
 	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
 	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
@@ -286,7 +291,7 @@ case $basic_machine in
 	| v850 | v850e \
 	| we32k \
 	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
-	| z8k)
+	| z8k | z80)
 		basic_machine=$basic_machine-unknown
 		;;
 	m6811 | m68hc11 | m6812 | m68hc12)
@@ -329,14 +334,17 @@ case $basic_machine in
 	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
 	| i*86-* | i860-* | i960-* | ia64-* \
 	| ip2k-* | iq2000-* \
+	| lm32-* \
 	| m32c-* | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | maxq-* | mcore-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 	| mips16-* \
 	| mips64-* | mips64el-* \
-	| mips64vr-* | mips64vrel-* \
+	| mips64octeon-* | mips64octeonel-* \
 	| mips64orion-* | mips64orionel-* \
+	| mips64r5900-* | mips64r5900el-* \
+	| mips64vr-* | mips64vrel-* \
 	| mips64vr4100-* | mips64vr4100el-* \
 	| mips64vr4300-* | mips64vr4300el-* \
 	| mips64vr5000-* | mips64vr5000el-* \
@@ -358,20 +366,20 @@ case $basic_machine in
 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
 	| pyramid-* \
 	| romp-* | rs6000-* \
-	| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
 	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
 	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
 	| sparclite-* \
 	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
 	| tahoe-* | thumb-* \
-	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
 	| tron-* \
 	| v850-* | v850e-* | vax-* \
 	| we32k-* \
 	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
 	| xstormy16-* | xtensa*-* \
 	| ymp-* \
-	| z8k-*)
+	| z8k-* | z80-*)
 		;;
 	# Recognize the basic CPU types without company name, with glob match.
 	xtensa*)
@@ -439,6 +447,10 @@ case $basic_machine in
 		basic_machine=m68k-apollo
 		os=-bsd
 		;;
+	aros)
+		basic_machine=i386-pc
+		os=-aros
+		;;
 	aux)
 		basic_machine=m68k-apple
 		os=-aux
@@ -459,6 +471,10 @@ case $basic_machine in
 		basic_machine=c90-cray
 		os=-unicos
 		;;
+        cegcc)
+		basic_machine=arm-unknown
+		os=-cegcc
+		;;
 	convex-c1)
 		basic_machine=c1-convex
 		os=-bsd
@@ -526,6 +542,10 @@ case $basic_machine in
 		basic_machine=m88k-motorola
 		os=-sysv3
 		;;
+	dicos)
+		basic_machine=i686-pc
+		os=-dicos
+		;;
 	djgpp)
 		basic_machine=i586-pc
 		os=-msdosdjgpp
@@ -1128,6 +1148,10 @@ case $basic_machine in
 		basic_machine=z8k-unknown
 		os=-sim
 		;;
+	z80-*-coff)
+		basic_machine=z80-unknown
+		os=-sim
+		;;
 	none)
 		basic_machine=none-none
 		os=-none
@@ -1166,7 +1190,7 @@ case $basic_machine in
 	we32k)
 		basic_machine=we32k-att
 		;;
-	sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
+	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
 		basic_machine=sh-unknown
 		;;
 	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
@@ -1238,8 +1262,9 @@ case $os in
 	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
 	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
 	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+	      | -kopensolaris* \
 	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-	      | -aos* \
+	      | -aos* | -aros* \
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
 	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
@@ -1248,7 +1273,7 @@ case $os in
 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-	      | -chorusos* | -chorusrdb* \
+	      | -chorusos* | -chorusrdb* | -cegcc* \
 	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
 	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
 	      | -uxpv* | -beos* | -mpeix* | -udk* \
@@ -1388,6 +1413,9 @@ case $os in
 	-zvmoe)
 		os=-zvmoe
 		;;
+	-dicos*)
+		os=-dicos
+		;;
 	-none)
 		;;
 	*)
diff --git a/configure b/configure
index 5842664..5813401 100755
--- a/configure
+++ b/configure
@@ -1,18 +1,20 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63.
+# Generated by GNU Autoconf 2.64.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
+# Foundation, Inc.
+#
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
@@ -20,23 +22,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
 esac
-
 fi
 
 
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
 as_nl='
 '
 export as_nl
@@ -44,7 +38,13 @@ export as_nl
 as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
   as_echo='printf %s\n'
   as_echo_n='printf %s'
 else
@@ -55,7 +55,7 @@ else
     as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
     as_echo_n_body='eval
       arg=$1;
-      case $arg in
+      case $arg in #(
       *"$as_nl"*)
 	expr "X$arg" : "X\\(.*\\)$as_nl";
 	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
@@ -78,13 +78,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
   }
 fi
 
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
 
 # IFS
 # We need space, tab and new line, in precisely that order.  Quoting is
@@ -94,15 +87,15 @@ fi
 IFS=" ""	$as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
+case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
 IFS=$as_save_IFS
 
      ;;
@@ -114,12 +107,16 @@ if test "x$as_myself" = x; then
 fi
 if test ! -f "$as_myself"; then
   $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
+  exit 1
 fi
 
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
 done
 PS1='$ '
 PS2='> '
@@ -131,330 +128,299 @@ export LC_ALL
 LANGUAGE=C
 export LANGUAGE
 
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
 # CDPATH.
-$as_unset CDPATH
-
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
 if test "x$CONFIG_SHELL" = x; then
-  if (eval ":") 2>/dev/null; then
-  as_have_required=yes
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
 else
-  as_have_required=no
+  case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
 fi
-
-  if test $as_have_required = yes &&	 (eval ":
-(as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
 
 exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+  exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+  if (eval "$as_required") 2>/dev/null; then :
+  as_have_required=yes
 else
-  exitcode=1
-  echo positional parameters were not saved.
+  as_have_required=no
 fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
 
-test \$exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=\$LINENO
-  as_lineno_2=\$LINENO
-  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
-  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
-") 2> /dev/null; then
-  :
 else
-  as_candidate_shells=
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
 for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  case $as_dir in
+  as_found=:
+  case $as_dir in #(
 	 /*)
 	   for as_base in sh bash ksh sh5; do
-	     as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
+	     # Try only shells that exist, to save several forks.
+	     as_shell=$as_dir/$as_base
+	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  CONFIG_SHELL=$as_shell as_have_required=yes
+		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  break 2
+fi
+fi
 	   done;;
        esac
+  as_found=false
 done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
 IFS=$as_save_IFS
 
 
-      for as_shell in $as_candidate_shells $SHELL; do
-	 # Try only shells that exist, to save several forks.
-	 if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		{ ("$as_shell") 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-_ASEOF
-}; then
-  CONFIG_SHELL=$as_shell
-	       as_have_required=yes
-	       if { "$as_shell" 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-(as_func_return () {
-  (exit $1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = "$1" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test $exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
-
-_ASEOF
-}; then
-  break
-fi
-
-fi
-
-      done
-
-      if test "x$CONFIG_SHELL" != x; then
-  for as_var in BASH_ENV ENV
-	do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-	done
+      if test "x$CONFIG_SHELL" != x; then :
+  # We cannot yet assume a decent shell, so we have to provide a
+	# neutralization value for shells without unset; and this also
+	# works around shells that cannot unset nonexistent variables.
+	BASH_ENV=/dev/null
+	ENV=/dev/null
+	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
 	export CONFIG_SHELL
 	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
 fi
 
-
-    if test $as_have_required = no; then
-  echo This script requires a shell more modern than all the
-      echo shells that I found on your system.  Please install a
-      echo modern shell, or manually run the script under such a
-      echo shell if you do have one.
-      { (exit 1); exit 1; }
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+  else
+    $as_echo "$0: Please tell bug-autoconf at gnu.org about your system,
+$0: including any error possibly output before this
+$0: message. Then install a modern shell, or manually run
+$0: the script under such a shell if you do have one."
+  fi
+  exit 1
 fi
-
-
 fi
-
 fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
 
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
 
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
 
-(eval "as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
 
-exitcode=0
-if as_func_success; then
-  :
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
 else
-  exitcode=1
-  echo as_func_success failed.
-fi
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
 
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
 
-if as_func_ret_success; then
-  :
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with status $?, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$?; test $as_status -eq 0 && as_status=1
+  if test "$3"; then
+    as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+  fi
+  $as_echo "$as_me: error: $1" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
 else
-  exitcode=1
-  echo as_func_ret_success failed.
+  as_expr=false
 fi
 
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
 fi
 
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
 else
-  exitcode=1
-  echo positional parameters were not saved.
+  as_dirname=false
 fi
 
-test \$exitcode = 0") || {
-  echo No shell found that supports shell functions.
-  echo Please tell bug-autoconf at gnu.org about your system,
-  echo including any error possibly output before this message.
-  echo This can help us improve future autoconf versions.
-  echo Configuration will now proceed without shell functions.
-}
-
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
 
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
 
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
 
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  Blame Lee
-  # E. McMahon (1931-1989) for sed's syntax.  :-)
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
   sed -n '
     p
     /[$]LINENO/=
@@ -471,8 +437,7 @@ test \$exitcode = 0") || {
       s/-\n.*//
     ' >$as_me.lineno &&
   chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
@@ -482,29 +447,18 @@ test \$exitcode = 0") || {
   exit
 }
 
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
 ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
+case `echo -n x` in #(((((
 -n*)
-  case `echo 'x\c'` in
+  case `echo 'xy\c'` in
   *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
   esac;;
 *)
   ECHO_N='-n';;
 esac
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
 
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
@@ -534,7 +488,7 @@ rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
 
 if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
+  as_mkdir_p='mkdir -p "$as_dir"'
 else
   test -d ./-p && rmdir ./-p
   as_mkdir_p=false
@@ -553,10 +507,10 @@ else
       if test -d "$1"; then
 	test -d "$1/.";
       else
-	case $1 in
+	case $1 in #(
 	-*)set "./$1";;
 	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
 	???[sx]*):;;*)false;;esac;fi
     '\'' sh
   '
@@ -571,7 +525,6 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
 
-
 # Check that we are running under the correct shell.
 SHELL=${CONFIG_SHELL-/bin/sh}
 
@@ -738,7 +691,6 @@ cross_compiling=no
 subdirs=
 MFLAGS=
 MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
 
 # Identity of this package.
 PACKAGE_NAME=
@@ -746,6 +698,7 @@ PACKAGE_TARNAME=
 PACKAGE_VERSION=
 PACKAGE_STRING=
 PACKAGE_BUGREPORT=
+PACKAGE_URL=
 
 ac_unique_file="README"
 # Factoring default headers for most tests.
@@ -785,7 +738,9 @@ ac_includes_default="\
 #endif"
 
 enable_option_checking=no
-ac_subst_vars='LTLIBOBJS
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
 LIBOBJS
 mono_cfg_dir
 mono_runtime
@@ -1034,6 +989,7 @@ bindir
 program_transform_name
 prefix
 exec_prefix
+PACKAGE_URL
 PACKAGE_BUGREPORT
 PACKAGE_STRING
 PACKAGE_VERSION
@@ -1202,8 +1158,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error "invalid feature name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1229,8 +1184,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error "invalid feature name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1434,8 +1388,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error "invalid package name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1451,8 +1404,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error "invalid package name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1482,17 +1434,17 @@ do
   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
     x_libraries=$ac_optarg ;;
 
-  -*) { $as_echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
+  -*) as_fn_error "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information."
     ;;
 
   *=*)
     ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
+    case $ac_envvar in #(
+      '' | [0-9]* | *[!_$as_cr_alnum]* )
+      as_fn_error "invalid variable name: \`$ac_envvar'" ;;
+    esac
     eval $ac_envvar=\$ac_optarg
     export $ac_envvar ;;
 
@@ -1509,15 +1461,13 @@ done
 
 if test -n "$ac_prev"; then
   ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { $as_echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error "missing argument to $ac_option"
 fi
 
 if test -n "$ac_unrecognized_opts"; then
   case $enable_option_checking in
     no) ;;
-    fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
-   { (exit 1); exit 1; }; } ;;
+    fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
     *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
   esac
 fi
@@ -1540,8 +1490,7 @@ do
     [\\/$]* | ?:[\\/]* )  continue;;
     NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
   esac
-  { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
 done
 
 # There might be people who depend on the old broken behavior: `$host'
@@ -1571,11 +1520,9 @@ test "$silent" = yes && exec 6>/dev/null
 ac_pwd=`pwd` && test -n "$ac_pwd" &&
 ac_ls_di=`ls -di .` &&
 ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  { $as_echo "$as_me: error: working directory cannot be determined" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error "working directory cannot be determined"
 test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  { $as_echo "$as_me: error: pwd does not report name of working directory" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error "pwd does not report name of working directory"
 
 
 # Find the source files, if location was not specified.
@@ -1614,13 +1561,11 @@ else
 fi
 if test ! -r "$srcdir/$ac_unique_file"; then
   test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
 fi
 ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
 ac_abs_confdir=`(
-	cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2
-   { (exit 1); exit 1; }; }
+	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
 	pwd)`
 # When building in place, set srcdir=.
 if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1790,6 +1735,7 @@ Some influential environment variables:
 Use these variables to override the choices made by `configure' or to help
 it to find libraries and programs with nonstandard names/locations.
 
+Report bugs to the package provider.
 _ACEOF
 ac_status=$?
 fi
@@ -1853,21 +1799,661 @@ test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
 configure
-generated by GNU Autoconf 2.63
+generated by GNU Autoconf 2.64
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright (C) 2009 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
   exit
 fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+    ac_retval=1
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+       $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=$ac_status
+fi
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $2 (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_func
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_header_compiler=yes
+else
+  ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  ac_header_preproc=yes
+else
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+  yes:no: )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_header_mongrel
+
+# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES
+# --------------------------------------------
+# Tries to find the compile-time value of EXPR in a program that includes
+# INCLUDES, setting VAR accordingly. Returns whether the value could be
+# computed
+ac_fn_c_compute_int ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if test "$cross_compiling" = yes; then
+    # Depending upon the size, compute the lo and hi bounds.
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_lo=0 ac_mid=0
+  while :; do
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=$ac_mid; break
+else
+  as_fn_arith $ac_mid + 1 && ac_lo=$as_val
+			if test $ac_lo -le $ac_mid; then
+			  ac_lo= ac_hi=
+			  break
+			fi
+			as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) < 0)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=-1 ac_mid=-1
+  while :; do
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) >= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_lo=$ac_mid; break
+else
+  as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val
+			if test $ac_mid -le $ac_hi; then
+			  ac_lo= ac_hi=
+			  break
+			fi
+			as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+  done
+else
+  ac_lo= ac_hi=
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+# Binary search between lo and hi bounds.
+while test "x$ac_lo" != "x$ac_hi"; do
+  as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+static int test_array [1 - 2 * !(($2) <= $ac_mid)];
+test_array [0] = 0
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_hi=$ac_mid
+else
+  as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+done
+case $ac_lo in #((
+?*) eval "$3=\$ac_lo"; ac_retval=0 ;;
+'') ac_retval=1 ;;
+esac
+  else
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+static long int longval () { return $2; }
+static unsigned long int ulongval () { return $2; }
+#include <stdio.h>
+#include <stdlib.h>
+int
+main ()
+{
+
+  FILE *f = fopen ("conftest.val", "w");
+  if (! f)
+    return 1;
+  if (($2) < 0)
+    {
+      long int i = longval ();
+      if (i != ($2))
+	return 1;
+      fprintf (f, "%ld", i);
+    }
+  else
+    {
+      unsigned long int i = ulongval ();
+      if (i != ($2))
+	return 1;
+      fprintf (f, "%lu", i);
+    }
+  /* Do not output a trailing newline, as this causes \r\n confusion
+     on some platforms.  */
+  return ferror (f) || fclose (f) != 0;
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_run "$LINENO"; then :
+  echo >>conftest.val; read $3 <conftest.val; ac_retval=0
+else
+  ac_retval=1
+fi
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f conftest.val
+
+  fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
+
+} # ac_fn_c_compute_int
+
+# ac_fn_c_check_type LINENO TYPE VAR INCLUDES
+# -------------------------------------------
+# Tests whether TYPE exists after having included INCLUDES, setting cache
+# variable VAR accordingly.
+ac_fn_c_check_type ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=no"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof ($2))
+	 return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+int
+main ()
+{
+if (sizeof (($2)))
+	    return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
+else
+  eval "$3=yes"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_type
+
+# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES
+# ----------------------------------------------------
+# Tries to find if the field MEMBER exists in type AGGR, after including
+# INCLUDES, setting cache variable VAR accordingly.
+ac_fn_c_check_member ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5
+$as_echo_n "checking for $2.$3... " >&6; }
+if { as_var=$4; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (ac_aggr.$3)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$4=yes"
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$5
+int
+main ()
+{
+static $2 ac_aggr;
+if (sizeof ac_aggr.$3)
+return 0;
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$4=yes"
+else
+  eval "$4=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$4
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_member
 cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by $as_me, which was
-generated by GNU Autoconf 2.63.  Invocation command line was
+generated by GNU Autoconf 2.64.  Invocation command line was
 
   $ $0 $@
 
@@ -1903,8 +2489,8 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  $as_echo "PATH: $as_dir"
-done
+    $as_echo "PATH: $as_dir"
+  done
 IFS=$as_save_IFS
 
 } >&5
@@ -1941,9 +2527,9 @@ do
       ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
     case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
     2)
-      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+      as_fn_append ac_configure_args1 " '$ac_arg'"
       if test $ac_must_keep_next = true; then
 	ac_must_keep_next=false # Got value, back to normal.
       else
@@ -1959,13 +2545,13 @@ do
 	  -* ) ac_must_keep_next=true ;;
 	esac
       fi
-      ac_configure_args="$ac_configure_args '$ac_arg'"
+      as_fn_append ac_configure_args " '$ac_arg'"
       ;;
     esac
   done
 done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
 
 # When interrupted or exit'd, cleanup temporary files, and complete
 # config.log.  We remove comments because anyway the quotes in there
@@ -1990,13 +2576,13 @@ _ASBOX
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
       BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) $as_unset $ac_var ;;
+      *) { eval $ac_var=; unset $ac_var;} ;;
       esac ;;
     esac
   done
@@ -2068,39 +2654,41 @@ _ASBOX
     exit $exit_status
 ' 0
 for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
 done
 ac_signal=0
 
 # confdefs.h avoids OS command line length limits that DEFS can exceed.
 rm -f -r conftest* confdefs.h
 
+$as_echo "/* confdefs.h */" > confdefs.h
+
 # Predefined preprocessor variables.
 
 cat >>confdefs.h <<_ACEOF
 #define PACKAGE_NAME "$PACKAGE_NAME"
 _ACEOF
 
-
 cat >>confdefs.h <<_ACEOF
 #define PACKAGE_TARNAME "$PACKAGE_TARNAME"
 _ACEOF
 
-
 cat >>confdefs.h <<_ACEOF
 #define PACKAGE_VERSION "$PACKAGE_VERSION"
 _ACEOF
 
-
 cat >>confdefs.h <<_ACEOF
 #define PACKAGE_STRING "$PACKAGE_STRING"
 _ACEOF
 
-
 cat >>confdefs.h <<_ACEOF
 #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
 _ACEOF
 
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
 
 # Let the site file select an alternate cache file if it wants to.
 # Prefer an explicitly selected file to automatically selected ones.
@@ -2119,7 +2707,7 @@ for ac_site_file in "$ac_site_file1" "$ac_site_file2"
 do
   test "x$ac_site_file" = xNONE && continue
   if test -r "$ac_site_file"; then
-    { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
 $as_echo "$as_me: loading site script $ac_site_file" >&6;}
     sed 's/^/| /' "$ac_site_file" >&5
     . "$ac_site_file"
@@ -2130,7 +2718,7 @@ if test -r "$cache_file"; then
   # Some versions of bash will fail to source /dev/null (special
   # files actually), so we avoid doing that.
   if test -f "$cache_file"; then
-    { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
 $as_echo "$as_me: loading cache $cache_file" >&6;}
     case $cache_file in
       [\\/]* | ?:[\\/]* ) . "$cache_file";;
@@ -2138,7 +2726,7 @@ $as_echo "$as_me: loading cache $cache_file" >&6;}
     esac
   fi
 else
-  { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
 $as_echo "$as_me: creating cache $cache_file" >&6;}
   >$cache_file
 fi
@@ -2153,11 +2741,11 @@ for ac_var in $ac_precious_vars; do
   eval ac_new_val=\$ac_env_${ac_var}_value
   case $ac_old_set,$ac_new_set in
     set,)
-      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,set)
-      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,);;
@@ -2167,17 +2755,17 @@ $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
 	ac_old_val_w=`echo x $ac_old_val`
 	ac_new_val_w=`echo x $ac_new_val`
 	if test "$ac_old_val_w" != "$ac_new_val_w"; then
-	  { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
 	  ac_cache_corrupted=:
 	else
-	  { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
 	  eval $ac_var=\$ac_old_val
 	fi
-	{ $as_echo "$as_me:$LINENO:   former value:  \`$ac_old_val'" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
 $as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-	{ $as_echo "$as_me:$LINENO:   current value: \`$ac_new_val'" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
 $as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
       fi;;
   esac
@@ -2189,35 +2777,20 @@ $as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
     esac
     case " $ac_configure_args " in
       *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
     esac
   fi
 done
 if $ac_cache_corrupted; then
-  { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-  { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
 fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
 
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -2228,24 +2801,16 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 ac_aux_dir=
 for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
+  for ac_t in install-sh install.sh shtool; do
+    if test -f "$ac_dir/$ac_t"; then
+      ac_aux_dir=$ac_dir
+      ac_install_sh="$ac_aux_dir/$ac_t -c"
+      break 2
+    fi
+  done
 done
 if test -z "$ac_aux_dir"; then
-  { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
-$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
 fi
 
 # These three variables are undocumented and unsupported,
@@ -2259,35 +2824,27 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 
 # Make sure we can run config.sub.
 $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
-$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
 
-{ $as_echo "$as_me:$LINENO: checking build system type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
 $as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then
+if test "${ac_cv_build+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_build_alias=$build_alias
 test "x$ac_build_alias" = x &&
   ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
 test "x$ac_build_alias" = x &&
-  { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
-$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
 $as_echo "$ac_cv_build" >&6; }
 case $ac_cv_build in
 *-*-*) ;;
-*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
-$as_echo "$as_me: error: invalid value of canonical build" >&2;}
-   { (exit 1); exit 1; }; };;
+*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
 esac
 build=$ac_cv_build
 ac_save_IFS=$IFS; IFS='-'
@@ -2303,28 +2860,24 @@ IFS=$ac_save_IFS
 case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
 
-{ $as_echo "$as_me:$LINENO: checking host system type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
 $as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then
+if test "${ac_cv_host+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test "x$host_alias" = x; then
   ac_cv_host=$ac_cv_build
 else
   ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
-$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
 $as_echo "$ac_cv_host" >&6; }
 case $ac_cv_host in
 *-*-*) ;;
-*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
-$as_echo "$as_me: error: invalid value of canonical host" >&2;}
-   { (exit 1); exit 1; }; };;
+*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
 esac
 host=$ac_cv_host
 ac_save_IFS=$IFS; IFS='-'
@@ -2340,28 +2893,24 @@ IFS=$ac_save_IFS
 case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
 
 
-{ $as_echo "$as_me:$LINENO: checking target system type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5
 $as_echo_n "checking target system type... " >&6; }
-if test "${ac_cv_target+set}" = set; then
+if test "${ac_cv_target+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test "x$target_alias" = x; then
   ac_cv_target=$ac_cv_host
 else
   ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` ||
-    { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&5
-$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $target_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_target" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5
 $as_echo "$ac_cv_target" >&6; }
 case $ac_cv_target in
 *-*-*) ;;
-*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical target" >&5
-$as_echo "$as_me: error: invalid value of canonical target" >&2;}
-   { (exit 1); exit 1; }; };;
+*) as_fn_error "invalid value of canonical target" "$LINENO" 5;;
 esac
 target=$ac_cv_target
 ac_save_IFS=$IFS; IFS='-'
@@ -2384,13 +2933,14 @@ test -n "$target_alias" &&
     NONENONEs,x,x, &&
   program_prefix=${target_alias}-
 
+
 # Gross hack to enable 'make dist' on automake 1.9+tar 1.14.
 # The extra brackets are to foil regex-based scans.
 
 
 ac_config_headers="$ac_config_headers config.h"
 
-am__api_version='1.10'
+am__api_version='1.11'
 
 # Find a good install program.  We prefer a C program (faster),
 # so one script is as good as another.  But avoid the broken or
@@ -2406,10 +2956,10 @@ am__api_version='1.10'
 # OS/2's system install, which has a completely different semantic
 # ./install, which can be erroneously created by make from ./install.sh.
 # Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
 $as_echo_n "checking for a BSD-compatible install... " >&6; }
 if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
+if test "${ac_cv_path_install+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -2417,11 +2967,11 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
-  ./ | .// | /cC/* | \
+    # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+  ./ | .// | /[cC]/* | \
   /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
   /usr/ucb/* ) ;;
   *)
     # OSF1 and SCO ODT 3.0 have their own names for install.
@@ -2458,7 +3008,7 @@ case $as_dir/ in
     ;;
 esac
 
-done
+  done
 IFS=$as_save_IFS
 
 rm -rf conftest.one conftest.two conftest.dir
@@ -2474,7 +3024,7 @@ fi
     INSTALL=$ac_install_sh
   fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
 $as_echo "$INSTALL" >&6; }
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
@@ -2485,21 +3035,34 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
-{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
 $as_echo_n "checking whether build environment is sane... " >&6; }
 # Just in case
 sleep 1
 echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name.  Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+  *[\\\"\#\$\&\'\`$am_lf]*)
+    as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+  *[\\\"\#\$\&\'\`$am_lf\ \	]*)
+    as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+esac
+
 # Do `set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
    if test "$*" = "X"; then
       # -L didn't work.
-      set X `ls -t $srcdir/configure conftest.file`
+      set X `ls -t "$srcdir/configure" conftest.file`
    fi
    rm -f conftest.file
    if test "$*" != "X $srcdir/configure conftest.file" \
@@ -2509,11 +3072,8 @@ if (
       # if, for instance, CONFIG_SHELL is bash and it inherits a
       # broken ls alias from the environment.  This has actually
       # happened.  Such a system could not be considered "sane".
-      { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" >&5
-$as_echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" >&2;}
-   { (exit 1); exit 1; }; }
+      as_fn_error "ls -t appears to fail.  Make sure there is not a broken
+alias in your environment" "$LINENO" 5
    fi
 
    test "$2" = conftest.file
@@ -2522,13 +3082,10 @@ then
    # Ok.
    :
 else
-   { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files!
-Check your system clock" >&5
-$as_echo "$as_me: error: newly created file is older than distributed files!
-Check your system clock" >&2;}
-   { (exit 1); exit 1; }; }
+   as_fn_error "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
 fi
-{ $as_echo "$as_me:$LINENO: result: yes" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 test "$program_prefix" != NONE &&
   program_transform_name="s&^&$program_prefix&;$program_transform_name"
@@ -2543,20 +3100,136 @@ program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
 # expand $ac_aux_dir to an absolute path
 am_aux_dir=`cd $ac_aux_dir && pwd`
 
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+if test x"${MISSING+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+  *)
+    MISSING="\${SHELL} $am_aux_dir/missing" ;;
+  esac
+fi
 # Use eval to expand $SHELL
 if eval "$MISSING --run true"; then
   am_missing_run="$MISSING --run "
 else
   am_missing_run=
-  { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
+if test x"${install_sh}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+  *)
+    install_sh="\${SHELL} $am_aux_dir/install-sh"
+  esac
+fi
+
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'.  However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_STRIP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_STRIP="strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_STRIP" = x; then
+    STRIP=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    STRIP=$ac_ct_STRIP
+  fi
+else
+  STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
 if test -z "$MKDIR_P"; then
-  if test "${ac_cv_path_mkdir+set}" = set; then
+  if test "${ac_cv_path_mkdir+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -2564,7 +3237,7 @@ for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_prog in mkdir gmkdir; do
+    for ac_prog in mkdir gmkdir; do
 	 for ac_exec_ext in '' $ac_executable_extensions; do
 	   { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
 	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
@@ -2576,7 +3249,7 @@ do
 	   esac
 	 done
        done
-done
+  done
 IFS=$as_save_IFS
 
 fi
@@ -2592,7 +3265,7 @@ fi
     MKDIR_P="$ac_install_sh -d"
   fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
 $as_echo "$MKDIR_P" >&6; }
 
 mkdir_p="$MKDIR_P"
@@ -2605,9 +3278,9 @@ for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then
+if test "${ac_cv_prog_AWK+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AWK"; then
@@ -2618,24 +3291,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AWK="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
-  { $as_echo "$as_me:$LINENO: result: $AWK" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
 $as_echo "$AWK" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -2643,11 +3316,11 @@ fi
   test -n "$AWK" && break
 done
 
-{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 set x ${MAKE-make}
 ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
   cat >conftest.make <<\_ACEOF
@@ -2665,11 +3338,11 @@ esac
 rm -f conftest.make
 fi
 if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
   SET_MAKE=
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
   SET_MAKE="MAKE=${MAKE-make}"
 fi
@@ -2689,9 +3362,7 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then
   am__isrc=' -I$(srcdir)'
   # test to see if srcdir already configured
   if test -f $srcdir/config.status; then
-    { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
-$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
   fi
 fi
 
@@ -2707,7 +3378,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE=mono
- VERSION=2.4.3
+ VERSION=2.4.4
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2735,108 +3406,6 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
 
 MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 
-install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
-
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
-  { $as_echo "$as_me:$LINENO: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
-  ac_ct_STRIP=$STRIP
-  # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_STRIP"; then
-  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_STRIP" = x; then
-    STRIP=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    STRIP=$ac_ct_STRIP
-  fi
-else
-  STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
 # Always define AMTAR for backward compatibility.
@@ -2844,7 +3413,7 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AMTAR=${AMTAR-"${am_missing_run}tar"}
 
 
-{ $as_echo "$as_me:$LINENO: checking how to create a ustar tar archive" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to create a ustar tar archive" >&5
 $as_echo_n "checking how to create a ustar tar archive... " >&6; }
 # Loop over all known methods to create a tar archive until one works.
 _am_tools='gnutar plaintar pax cpio none'
@@ -2917,29 +3486,30 @@ do
 done
 rm -rf conftest.dir
 
-if test "${am_cv_prog_tar_ustar+set}" = set; then
+if test "${am_cv_prog_tar_ustar+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   am_cv_prog_tar_ustar=$_am_tool
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $am_cv_prog_tar_ustar" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_ustar" >&5
 $as_echo "$am_cv_prog_tar_ustar" >&6; }
 
 
 
 
 
-{ $as_echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
     # Check whether --enable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then
+if test "${enable_maintainer_mode+set}" = set; then :
   enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
 else
   USE_MAINTAINER_MODE=no
 fi
 
-  { $as_echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
 $as_echo "$USE_MAINTAINER_MODE" >&6; }
    if test $USE_MAINTAINER_MODE = yes; then
   MAINTAINER_MODE_TRUE=
@@ -2956,14 +3526,14 @@ fi
 API_VER=1.0
 
 
-{ $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
 $as_echo_n "checking whether ln -s works... " >&6; }
 LN_S=$as_ln_s
 if test "$LN_S" = "ln -s"; then
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
 $as_echo "no, using $LN_S" >&6; }
 fi
 
@@ -3011,7 +3581,7 @@ no_version_script=no
 need_link_unlink=no
 
 # Thread configuration inspired by sleepycat's db
-{ $as_echo "$as_me:$LINENO: checking host platform characteristics" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host platform characteristics" >&5
 $as_echo_n "checking host platform characteristics... " >&6; }
 libgc_threads=no
 has_dtrace=no
@@ -3027,9 +3597,7 @@ case "$host" in
 	*-*-mingw*|*-*-cygwin*)
 		platform_win32=yes
 
-cat >>confdefs.h <<\_ACEOF
-#define PLATFORM_WIN32 1
-_ACEOF
+$as_echo "#define PLATFORM_WIN32 1" >>confdefs.h
 
 		if test "x$cross_compiling" = "xno"; then
 			CC="gcc -mno-cygwin -g"
@@ -3081,9 +3649,7 @@ _ACEOF
 		CPPFLAGS="$CPPFLAGS -DPLATFORM_BSD"
 		need_link_unlink=yes
 
-cat >>confdefs.h <<\_ACEOF
-#define PTHREAD_POINTER_ID 1
-_ACEOF
+$as_echo "#define PTHREAD_POINTER_ID 1" >>confdefs.h
 
 		libdl=
 		libgc_threads=pthreads
@@ -3101,9 +3667,7 @@ _ACEOF
 		LDFLAGS="$LDFLAGS -pthread"
 		libmono_ldflags="-pthread"
 		need_link_unlink=yes
-		cat >>confdefs.h <<\_ACEOF
-#define PTHREAD_POINTER_ID 1
-_ACEOF
+		$as_echo "#define PTHREAD_POINTER_ID 1" >>confdefs.h
 
 		libdl=
 		libgc_threads=pthreads
@@ -3157,14 +3721,10 @@ _ACEOF
 		LDFLAGS="$LDFLAGS -pthread"
 		libmono_ldflags="-pthread"
 		need_link_unlink=yes
-		cat >>confdefs.h <<\_ACEOF
-#define PTHREAD_POINTER_ID 1
-_ACEOF
+		$as_echo "#define PTHREAD_POINTER_ID 1" >>confdefs.h
 
 
-cat >>confdefs.h <<\_ACEOF
-#define USE_MACH_SEMA 1
-_ACEOF
+$as_echo "#define USE_MACH_SEMA 1" >>confdefs.h
 
 		no_version_script=yes
 		libdl=
@@ -3175,20 +3735,18 @@ _ACEOF
 		fi
 		;;
 	*)
-		{ $as_echo "$as_me:$LINENO: WARNING: *** Please add $host to configure.in checks!" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** Please add $host to configure.in checks!" >&5
 $as_echo "$as_me: WARNING: *** Please add $host to configure.in checks!" >&2;}
 		platform_win32=no
 		libdl="-ldl"
 		;;
 esac
-{ $as_echo "$as_me:$LINENO: result: ok" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
 $as_echo "ok" >&6; }
 
 if test x$need_link_unlink = xyes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define NEED_LINK_UNLINK 1
-_ACEOF
+$as_echo "#define NEED_LINK_UNLINK 1" >>confdefs.h
 
 fi
 
@@ -3212,9 +3770,9 @@ fi
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if test "${ac_cv_prog_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3225,24 +3783,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3252,9 +3810,9 @@ if test -z "$ac_cv_prog_CC"; then
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -3265,24 +3823,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
 $as_echo "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3291,7 +3849,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -3309,9 +3867,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if test "${ac_cv_prog_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3322,24 +3880,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3349,9 +3907,9 @@ if test -z "$ac_cv_prog_CC"; then
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -3362,24 +3920,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
 $as_echo "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3388,7 +3946,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -3402,9 +3960,9 @@ if test -z "$CC"; then
           if test -n "$ac_tool_prefix"; then
     # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if test "${ac_cv_prog_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3415,24 +3973,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3442,9 +4000,9 @@ fi
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if test "${ac_cv_prog_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3456,18 +4014,18 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
      fi
     ac_cv_prog_CC="cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 if test $ac_prog_rejected = yes; then
@@ -3486,10 +4044,10 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3501,9 +4059,9 @@ if test -z "$CC"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if test "${ac_cv_prog_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -3514,24 +4072,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3545,9 +4103,9 @@ if test -z "$CC"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -3558,24 +4116,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
 $as_echo "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3588,7 +4146,7 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -3599,73 +4157,55 @@ fi
 fi
 
 
-test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error "no acceptable C compiler found in \$PATH
+See \`config.log' for more details." "$LINENO" 5; }
 
 # Provide some information about the compiler.
-$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
 set X $ac_compile
 ac_compiler=$2
-{ (ac_try="$ac_compiler --version >&5"
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    rm -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
 
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+#include <stdio.h>
 int
 main ()
 {
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
 
   ;
   return 0;
 }
 _ACEOF
 ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.out"
 # Try to create an executable without -o first, disregard a.out.
 # It will help us diagnose broken compilers, and finding out an intuition
 # of exeext.
-{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
 $as_echo_n "checking for C compiler default output file name... " >&6; }
 ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
 
@@ -3682,17 +4222,17 @@ do
 done
 rm -f $ac_rmfiles
 
-if { (ac_try="$ac_link_default"
+if { { ac_try="$ac_link_default"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_link_default") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
   # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
 # So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
 # in a Makefile.  We should not override ac_cv_exeext if it was cached,
@@ -3709,7 +4249,7 @@ do
 	# certainly right.
 	break;;
     *.* )
-        if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
 	then :; else
 	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
 	fi
@@ -3728,84 +4268,75 @@ test "$ac_cv_exeext" = no && ac_cv_exeext=
 else
   ac_file=''
 fi
-
-{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
 $as_echo "$ac_file" >&6; }
-if test -z "$ac_file"; then
+if test -z "$ac_file"; then :
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
+{ as_fn_set_status 77
+as_fn_error "C compiler cannot create executables
+See \`config.log' for more details." "$LINENO" 5; }; }
 fi
-
 ac_exeext=$ac_cv_exeext
 
 # Check that the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
 $as_echo_n "checking whether the C compiler works... " >&6; }
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
 # If not cross compiling, check that we can run a simple program.
 if test "$cross_compiling" != yes; then
   if { ac_try='./$ac_file'
-  { (case "(($ac_try" in
+  { { case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
     cross_compiling=no
   else
     if test "$cross_compiling" = maybe; then
 	cross_compiling=yes
     else
-	{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.
+as_fn_error "cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+See \`config.log' for more details." "$LINENO" 5; }
     fi
   fi
 fi
-{ $as_echo "$as_me:$LINENO: result: yes" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out
 ac_clean_files=$ac_clean_files_save
 # Check that the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
 $as_echo_n "checking whether we are cross compiling... " >&6; }
-{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
 $as_echo "$cross_compiling" >&6; }
 
-{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
 $as_echo_n "checking for suffix of executables... " >&6; }
-if { (ac_try="$ac_link"
+if { { ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
   # If both `conftest.exe' and `conftest' are `present' (well, observable)
 # catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
 # work properly (i.e., refer to `conftest.exe'), while it won't with
@@ -3820,32 +4351,24 @@ for ac_file in conftest.exe conftest conftest.*; do
   esac
 done
 else
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." "$LINENO" 5; }
 fi
-
 rm -f conftest$ac_cv_exeext
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
 $as_echo "$ac_cv_exeext" >&6; }
 
 rm -f conftest.$ac_ext
 EXEEXT=$ac_cv_exeext
 ac_exeext=$EXEEXT
-{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
 $as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then
+if test "${ac_cv_objext+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -3857,17 +4380,17 @@ main ()
 }
 _ACEOF
 rm -f conftest.o conftest.obj
-if { (ac_try="$ac_compile"
+if { { ac_try="$ac_compile"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_compile") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
   for ac_file in conftest.o conftest.obj conftest.*; do
   test -f "$ac_file" || continue;
   case $ac_file in
@@ -3880,31 +4403,23 @@ else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." "$LINENO" 5; }
 fi
-
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
 $as_echo "$ac_cv_objext" >&6; }
 OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
-{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
+if test "${ac_cv_c_compiler_gnu+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -3918,37 +4433,16 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_compiler_gnu=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_compiler_gnu=no
+  ac_compiler_gnu=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
 $as_echo "$ac_cv_c_compiler_gnu" >&6; }
 if test $ac_compiler_gnu = yes; then
   GCC=yes
@@ -3957,20 +4451,16 @@ else
 fi
 ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
 $as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then
+if test "${ac_cv_prog_cc_g+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
    ac_c_werror_flag=yes
    ac_cv_prog_cc_g=no
    CFLAGS="-g"
-   cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -3981,35 +4471,11 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_g=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	CFLAGS=""
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -4020,36 +4486,12 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_compile "$LINENO"; then :
 
-	ac_c_werror_flag=$ac_save_c_werror_flag
+else
+  ac_c_werror_flag=$ac_save_c_werror_flag
 	 CFLAGS="-g"
-	 cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -4060,42 +4502,17 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_g=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    ac_c_werror_flag=$ac_save_c_werror_flag
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
 $as_echo "$ac_cv_prog_cc_g" >&6; }
 if test "$ac_test_CFLAGS" = set; then
   CFLAGS=$ac_save_CFLAGS
@@ -4112,18 +4529,14 @@ else
     CFLAGS=
   fi
 fi
-{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then
+if test "${ac_cv_prog_cc_c89+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
 ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdarg.h>
 #include <stdio.h>
@@ -4180,32 +4593,9 @@ for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
 	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+  if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_c89=$ac_arg
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext
   test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
@@ -4216,17 +4606,19 @@ fi
 # AC_CACHE_VAL
 case "x$ac_cv_prog_cc_c89" in
   x)
-    { $as_echo "$as_me:$LINENO: result: none needed" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
 $as_echo "none needed" >&6; } ;;
   xno)
-    { $as_echo "$as_me:$LINENO: result: unsupported" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
 $as_echo "unsupported" >&6; } ;;
   *)
     CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
 esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
 
+fi
 
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -4241,44 +4633,44 @@ ac_config_commands="$ac_config_commands depfiles"
 am_make=${MAKE-make}
 cat > confinc << 'END'
 am__doit:
-	@echo done
+	@echo this is the am__doit target
 .PHONY: am__doit
 END
 # If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
 $as_echo_n "checking for style of include used by $am_make... " >&6; }
 am__include="#"
 am__quote=
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
-   am__include=include
-   am__quote=
-   _am_result=GNU
-fi
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+  am__include=include
+  am__quote=
+  _am_result=GNU
+  ;;
+esac
 # Now try BSD make style include.
 if test "$am__include" = "#"; then
    echo '.include "confinc"' > confmf
-   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
-      am__include=.include
-      am__quote="\""
-      _am_result=BSD
-   fi
+   case `$am_make -s -f confmf 2> /dev/null` in #(
+   *the\ am__doit\ target*)
+     am__include=.include
+     am__quote="\""
+     _am_result=BSD
+     ;;
+   esac
 fi
 
 
-{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
 $as_echo "$_am_result" >&6; }
 rm -f confinc confmf
 
 # Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then
+if test "${enable_dependency_tracking+set}" = set; then :
   enableval=$enable_dependency_tracking;
 fi
 
@@ -4298,9 +4690,9 @@ fi
 
 depcc="$CC"   am_compiler_list=
 
-{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 $as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -4326,6 +4718,11 @@ else
   if test "$am_compiler_list" = ""; then
      am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
   fi
+  am__universal=false
+  case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac
+
   for depmode in $am_compiler_list; do
     # Setup a source with many dependencies, because some compilers
     # like to wrap large dependency lists on column 80 (with \), and
@@ -4343,7 +4740,17 @@ else
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
     case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
     nosideeffect)
       # after this tag, mechanisms are not by side-effect, so they'll
       # only be used when explicitly requested
@@ -4353,19 +4760,23 @@ else
 	break
       fi
       ;;
+    msvisualcpp | msvcmsys)
+      # This compiler won't grok `-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
     none) break ;;
     esac
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.
     if depmode=$depmode \
-       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       source=sub/conftest.c object=$am__obj \
        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
          >/dev/null 2>conftest.err &&
        grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
       # icc doesn't choke on unknown options, it will just issue warnings
       # or remarks (even with -Werror).  So we grep stderr for any message
@@ -4389,7 +4800,7 @@ else
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 
@@ -4413,9 +4824,9 @@ test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS
 
 depcc="$CCAS"   am_compiler_list=
 
-{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 $as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CCAS_dependencies_compiler_type+set}" = set; then
+if test "${am_cv_CCAS_dependencies_compiler_type+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -4441,6 +4852,9 @@ else
   if test "$am_compiler_list" = ""; then
      am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
   fi
+  am__universal=false
+
+
   for depmode in $am_compiler_list; do
     # Setup a source with many dependencies, because some compilers
     # like to wrap large dependency lists on column 80 (with \), and
@@ -4458,7 +4872,17 @@ else
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
     case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
     nosideeffect)
       # after this tag, mechanisms are not by side-effect, so they'll
       # only be used when explicitly requested
@@ -4468,19 +4892,23 @@ else
 	break
       fi
       ;;
+    msvisualcpp | msvcmsys)
+      # This compiler won't grok `-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
     none) break ;;
     esac
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.
     if depmode=$depmode \
-       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       source=sub/conftest.c object=$am__obj \
        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
          >/dev/null 2>conftest.err &&
        grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
       # icc doesn't choke on unknown options, it will just issue warnings
       # or remarks (even with -Werror).  So we grep stderr for any message
@@ -4504,7 +4932,7 @@ else
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_CCAS_dependencies_compiler_type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5
 $as_echo "$am_cv_CCAS_dependencies_compiler_type" >&6; }
 CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type
 
@@ -4527,9 +4955,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if test "${ac_cv_prog_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -4540,24 +4968,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -4567,9 +4995,9 @@ if test -z "$ac_cv_prog_CC"; then
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -4580,24 +5008,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
 $as_echo "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -4606,7 +5034,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -4620,9 +5048,9 @@ if test -z "$CC"; then
           if test -n "$ac_tool_prefix"; then
     # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if test "${ac_cv_prog_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -4633,24 +5061,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -4660,9 +5088,9 @@ fi
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if test "${ac_cv_prog_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -4674,18 +5102,18 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
      fi
     ac_cv_prog_CC="cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 if test $ac_prog_rejected = yes; then
@@ -4704,10 +5132,10 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -4719,9 +5147,9 @@ if test -z "$CC"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if test "${ac_cv_prog_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -4732,24 +5160,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -4763,9 +5191,9 @@ if test -z "$CC"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -4776,24 +5204,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
 $as_echo "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -4806,7 +5234,7 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -4817,62 +5245,42 @@ fi
 fi
 
 
-test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error "no acceptable C compiler found in \$PATH
+See \`config.log' for more details." "$LINENO" 5; }
 
 # Provide some information about the compiler.
-$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
 set X $ac_compile
 ac_compiler=$2
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    rm -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
 
-{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
+if test "${ac_cv_c_compiler_gnu+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -4886,37 +5294,16 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_compiler_gnu=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_compiler_gnu=no
+  ac_compiler_gnu=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
 $as_echo "$ac_cv_c_compiler_gnu" >&6; }
 if test $ac_compiler_gnu = yes; then
   GCC=yes
@@ -4925,20 +5312,16 @@ else
 fi
 ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
 $as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then
+if test "${ac_cv_prog_cc_g+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
    ac_c_werror_flag=yes
    ac_cv_prog_cc_g=no
    CFLAGS="-g"
-   cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -4949,35 +5332,11 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_g=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	CFLAGS=""
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -4988,36 +5347,12 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_compile "$LINENO"; then :
 
-	ac_c_werror_flag=$ac_save_c_werror_flag
+else
+  ac_c_werror_flag=$ac_save_c_werror_flag
 	 CFLAGS="-g"
-	 cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -5028,42 +5363,17 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_g=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    ac_c_werror_flag=$ac_save_c_werror_flag
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
 $as_echo "$ac_cv_prog_cc_g" >&6; }
 if test "$ac_test_CFLAGS" = set; then
   CFLAGS=$ac_save_CFLAGS
@@ -5080,18 +5390,14 @@ else
     CFLAGS=
   fi
 fi
-{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then
+if test "${ac_cv_prog_cc_c89+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
 ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdarg.h>
 #include <stdio.h>
@@ -5148,32 +5454,9 @@ for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
 	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+  if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_c89=$ac_arg
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext
   test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
@@ -5184,17 +5467,19 @@ fi
 # AC_CACHE_VAL
 case "x$ac_cv_prog_cc_c89" in
   x)
-    { $as_echo "$as_me:$LINENO: result: none needed" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
 $as_echo "none needed" >&6; } ;;
   xno)
-    { $as_echo "$as_me:$LINENO: result: unsupported" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
 $as_echo "unsupported" >&6; } ;;
   *)
     CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
 esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
 
+fi
 
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -5204,9 +5489,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 depcc="$CC"   am_compiler_list=
 
-{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 $as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -5232,6 +5517,11 @@ else
   if test "$am_compiler_list" = ""; then
      am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
   fi
+  am__universal=false
+  case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac
+
   for depmode in $am_compiler_list; do
     # Setup a source with many dependencies, because some compilers
     # like to wrap large dependency lists on column 80 (with \), and
@@ -5249,7 +5539,17 @@ else
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
     case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
     nosideeffect)
       # after this tag, mechanisms are not by side-effect, so they'll
       # only be used when explicitly requested
@@ -5259,19 +5559,23 @@ else
 	break
       fi
       ;;
+    msvisualcpp | msvcmsys)
+      # This compiler won't grok `-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
     none) break ;;
     esac
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.
     if depmode=$depmode \
-       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       source=sub/conftest.c object=$am__obj \
        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
          >/dev/null 2>conftest.err &&
        grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
       # icc doesn't choke on unknown options, it will just issue warnings
       # or remarks (even with -Werror).  So we grep stderr for any message
@@ -5295,7 +5599,7 @@ else
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 
@@ -5313,106 +5617,14 @@ fi
 
 am_cv_prog_cc_stdc=$ac_cv_prog_cc_stdc
 
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
-  ./ | .// | /cC/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
-	  if test $ac_prog = install &&
-	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # AIX install.  It has an incompatible calling convention.
-	    :
-	  elif test $ac_prog = install &&
-	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # program-specific install script used by HP pwplus--don't use.
-	    :
-	  else
-	    rm -rf conftest.one conftest.two conftest.dir
-	    echo one > conftest.one
-	    echo two > conftest.two
-	    mkdir conftest.dir
-	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
-	      test -s conftest.one && test -s conftest.two &&
-	      test -s conftest.dir/conftest.one &&
-	      test -s conftest.dir/conftest.two
-	    then
-	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-	      break 3
-	    fi
-	  fi
-	fi
-      done
-    done
-    ;;
-esac
-
-done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    INSTALL=$ac_install_sh
-  fi
-fi
-{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then
+if test "${ac_cv_prog_AWK+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AWK"; then
@@ -5423,24 +5635,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AWK="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
-  { $as_echo "$as_me:$LINENO: result: $AWK" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
 $as_echo "$AWK" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -5456,9 +5668,9 @@ done
 
 # Extract the first word of "bison", so it can be a program name with args.
 set dummy bison; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_BISON+set}" = set; then
+if test "${ac_cv_prog_BISON+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$BISON"; then
@@ -5469,14 +5681,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_BISON="yes"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   test -z "$ac_cv_prog_BISON" && ac_cv_prog_BISON="no"
@@ -5484,19 +5696,17 @@ fi
 fi
 BISON=$ac_cv_prog_BISON
 if test -n "$BISON"; then
-  { $as_echo "$as_me:$LINENO: result: $BISON" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $BISON" >&5
 $as_echo "$BISON" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
 if test "x$BISON" = "xno";
 then
-	{ { $as_echo "$as_me:$LINENO: error: You need to install bison" >&5
-$as_echo "$as_me: error: You need to install bison" >&2;}
-   { (exit 1); exit 1; }; }
+	as_fn_error "You need to install bison" "$LINENO" 5
 fi
 
 CC_FOR_BUILD=$CC
@@ -5536,14 +5746,14 @@ ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
 $as_echo_n "checking how to run the C preprocessor... " >&6; }
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 fi
 if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then
+  if test "${ac_cv_prog_CPP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
       # Double quotes because CPP needs to be expanded
@@ -5558,11 +5768,7 @@ do
   # <limits.h> exists even on freestanding compilers.
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifdef __STDC__
 # include <limits.h>
@@ -5571,78 +5777,34 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
 		     Syntax error
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_cpp "$LINENO"; then :
 
+else
   # Broken: fails on valid input.
 continue
 fi
-
 rm -f conftest.err conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
+if ac_fn_c_try_cpp "$LINENO"; then :
   # Broken: success on invalid input.
 continue
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
   # Passes both tests.
 ac_preproc_ok=:
 break
 fi
-
 rm -f conftest.err conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
+if $ac_preproc_ok; then :
   break
 fi
 
@@ -5654,7 +5816,7 @@ fi
 else
   ac_cv_prog_CPP=$CPP
 fi
-{ $as_echo "$as_me:$LINENO: result: $CPP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
 $as_echo "$CPP" >&6; }
 ac_preproc_ok=false
 for ac_c_preproc_warn_flag in '' yes
@@ -5665,11 +5827,7 @@ do
   # <limits.h> exists even on freestanding compilers.
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifdef __STDC__
 # include <limits.h>
@@ -5678,87 +5836,40 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
 		     Syntax error
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_cpp "$LINENO"; then :
 
+else
   # Broken: fails on valid input.
 continue
 fi
-
 rm -f conftest.err conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
+if ac_fn_c_try_cpp "$LINENO"; then :
   # Broken: success on invalid input.
 continue
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
   # Passes both tests.
 ac_preproc_ok=:
 break
 fi
-
 rm -f conftest.err conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
+if $ac_preproc_ok; then :
+
 else
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." "$LINENO" 5; }
 fi
 
 ac_ext=c
@@ -5768,9 +5879,9 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
 $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then
+if test "${ac_cv_path_GREP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$GREP"; then
@@ -5781,7 +5892,7 @@ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_prog in grep ggrep; do
+    for ac_prog in grep ggrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
       { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
@@ -5801,7 +5912,7 @@ case `"$ac_path_GREP" --version 2>&1` in
     $as_echo 'GREP' >> "conftest.nl"
     "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
     if test $ac_count -gt ${ac_path_GREP_max-0}; then
       # Best one so far, save it but keep looking for a better one
       ac_cv_path_GREP="$ac_path_GREP"
@@ -5816,26 +5927,24 @@ esac
       $ac_path_GREP_found && break 3
     done
   done
-done
+  done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_GREP"; then
-    { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
   fi
 else
   ac_cv_path_GREP=$GREP
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
 $as_echo "$ac_cv_path_GREP" >&6; }
  GREP="$ac_cv_path_GREP"
 
 
-{ $as_echo "$as_me:$LINENO: checking for egrep" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
 $as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then
+if test "${ac_cv_path_EGREP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
@@ -5849,7 +5958,7 @@ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_prog in egrep; do
+    for ac_prog in egrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
       { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
@@ -5869,7 +5978,7 @@ case `"$ac_path_EGREP" --version 2>&1` in
     $as_echo 'EGREP' >> "conftest.nl"
     "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
     if test $ac_count -gt ${ac_path_EGREP_max-0}; then
       # Best one so far, save it but keep looking for a better one
       ac_cv_path_EGREP="$ac_path_EGREP"
@@ -5884,12 +5993,10 @@ esac
       $ac_path_EGREP_found && break 3
     done
   done
-done
+  done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_EGREP"; then
-    { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
   fi
 else
   ac_cv_path_EGREP=$EGREP
@@ -5897,21 +6004,17 @@ fi
 
    fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
 $as_echo "$ac_cv_path_EGREP" >&6; }
  EGREP="$ac_cv_path_EGREP"
 
 
-{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
 $as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then
+if test "${ac_cv_header_stdc+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
 #include <stdarg.h>
@@ -5926,48 +6029,23 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_header_stdc=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_header_stdc=no
+  ac_cv_header_stdc=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <string.h>
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then
-  :
+  $EGREP "memchr" >/dev/null 2>&1; then :
+
 else
   ac_cv_header_stdc=no
 fi
@@ -5977,18 +6055,14 @@ fi
 
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then
-  :
+  $EGREP "free" >/dev/null 2>&1; then :
+
 else
   ac_cv_header_stdc=no
 fi
@@ -5998,14 +6072,10 @@ fi
 
 if test $ac_cv_header_stdc = yes; then
   # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then
+  if test "$cross_compiling" = yes; then :
   :
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ctype.h>
 #include <stdlib.h>
@@ -6032,51 +6102,22 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_run "$LINENO"; then :
 
-( exit $ac_status )
-ac_cv_header_stdc=no
+else
+  ac_cv_header_stdc=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
 $as_echo "$ac_cv_header_stdc" >&6; }
 if test $ac_cv_header_stdc = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
 
 fi
 
@@ -6087,9 +6128,9 @@ case $host in
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
 set dummy ${ac_tool_prefix}as; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AS+set}" = set; then
+if test "${ac_cv_prog_AS+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AS"; then
@@ -6100,24 +6141,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AS="${ac_tool_prefix}as"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 AS=$ac_cv_prog_AS
 if test -n "$AS"; then
-  { $as_echo "$as_me:$LINENO: result: $AS" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
 $as_echo "$AS" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6127,9 +6168,9 @@ if test -z "$ac_cv_prog_AS"; then
   ac_ct_AS=$AS
   # Extract the first word of "as", so it can be a program name with args.
 set dummy as; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AS+set}" = set; then
+if test "${ac_cv_prog_ac_ct_AS+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_AS"; then
@@ -6140,24 +6181,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_AS="as"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_AS=$ac_cv_prog_ac_ct_AS
 if test -n "$ac_ct_AS"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5
 $as_echo "$ac_ct_AS" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6166,7 +6207,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -6179,9 +6220,9 @@ fi
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
 set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DLLTOOL+set}" = set; then
+if test "${ac_cv_prog_DLLTOOL+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$DLLTOOL"; then
@@ -6192,24 +6233,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 DLLTOOL=$ac_cv_prog_DLLTOOL
 if test -n "$DLLTOOL"; then
-  { $as_echo "$as_me:$LINENO: result: $DLLTOOL" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
 $as_echo "$DLLTOOL" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6219,9 +6260,9 @@ if test -z "$ac_cv_prog_DLLTOOL"; then
   ac_ct_DLLTOOL=$DLLTOOL
   # Extract the first word of "dlltool", so it can be a program name with args.
 set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then
+if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_DLLTOOL"; then
@@ -6232,24 +6273,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_DLLTOOL="dlltool"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
 if test -n "$ac_ct_DLLTOOL"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_DLLTOOL" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
 $as_echo "$ac_ct_DLLTOOL" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6258,7 +6299,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -6271,9 +6312,9 @@ fi
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
 set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OBJDUMP+set}" = set; then
+if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OBJDUMP"; then
@@ -6284,24 +6325,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 OBJDUMP=$ac_cv_prog_OBJDUMP
 if test -n "$OBJDUMP"; then
-  { $as_echo "$as_me:$LINENO: result: $OBJDUMP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
 $as_echo "$OBJDUMP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6311,9 +6352,9 @@ if test -z "$ac_cv_prog_OBJDUMP"; then
   ac_ct_OBJDUMP=$OBJDUMP
   # Extract the first word of "objdump", so it can be a program name with args.
 set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then
+if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OBJDUMP"; then
@@ -6324,24 +6365,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_OBJDUMP="objdump"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
 if test -n "$ac_ct_OBJDUMP"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
 $as_echo "$ac_ct_OBJDUMP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6350,7 +6391,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -6387,7 +6428,7 @@ test -z "$OBJDUMP" && OBJDUMP=objdump
 #AC_DISABLE_FAST_INSTALL
 case `pwd` in
   *\ * | *\	*)
-    { $as_echo "$as_me:$LINENO: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
 esac
 
@@ -6410,9 +6451,9 @@ macro_revision='1.3012'
 
 ltmain="$ac_aux_dir/ltmain.sh"
 
-{ $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
 $as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if test "${ac_cv_path_SED+set}" = set; then
+if test "${ac_cv_path_SED+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
             ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
@@ -6420,7 +6461,7 @@ else
        ac_script="$ac_script$as_nl$ac_script"
      done
      echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
-     $as_unset ac_script || ac_script=
+     { ac_script=; unset ac_script;}
      if test -z "$SED"; then
   ac_path_SED_found=false
   # Loop through the user's path and test for each of PROGNAME-LIST
@@ -6429,7 +6470,7 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_prog in sed gsed; do
+    for ac_prog in sed gsed; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
       { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
@@ -6449,7 +6490,7 @@ case `"$ac_path_SED" --version 2>&1` in
     $as_echo '' >> "conftest.nl"
     "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
     if test $ac_count -gt ${ac_path_SED_max-0}; then
       # Best one so far, save it but keep looking for a better one
       ac_cv_path_SED="$ac_path_SED"
@@ -6464,19 +6505,17 @@ esac
       $ac_path_SED_found && break 3
     done
   done
-done
+  done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_SED"; then
-    { { $as_echo "$as_me:$LINENO: error: no acceptable sed could be found in \$PATH" >&5
-$as_echo "$as_me: error: no acceptable sed could be found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
   fi
 else
   ac_cv_path_SED=$SED
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
 $as_echo "$ac_cv_path_SED" >&6; }
  SED="$ac_cv_path_SED"
   rm -f conftest.sed
@@ -6494,9 +6533,9 @@ Xsed="$SED -e 1s/^X//"
 
 
 
-{ $as_echo "$as_me:$LINENO: checking for fgrep" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
 $as_echo_n "checking for fgrep... " >&6; }
-if test "${ac_cv_path_FGREP+set}" = set; then
+if test "${ac_cv_path_FGREP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
@@ -6510,7 +6549,7 @@ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_prog in fgrep; do
+    for ac_prog in fgrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
       { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
@@ -6530,7 +6569,7 @@ case `"$ac_path_FGREP" --version 2>&1` in
     $as_echo 'FGREP' >> "conftest.nl"
     "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
     if test $ac_count -gt ${ac_path_FGREP_max-0}; then
       # Best one so far, save it but keep looking for a better one
       ac_cv_path_FGREP="$ac_path_FGREP"
@@ -6545,12 +6584,10 @@ esac
       $ac_path_FGREP_found && break 3
     done
   done
-done
+  done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_FGREP"; then
-    { { $as_echo "$as_me:$LINENO: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-$as_echo "$as_me: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
   fi
 else
   ac_cv_path_FGREP=$FGREP
@@ -6558,7 +6595,7 @@ fi
 
    fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_FGREP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
 $as_echo "$ac_cv_path_FGREP" >&6; }
  FGREP="$ac_cv_path_FGREP"
 
@@ -6584,7 +6621,7 @@ test -z "$GREP" && GREP=grep
 
 
 # Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
+if test "${with_gnu_ld+set}" = set; then :
   withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
 else
   with_gnu_ld=no
@@ -6593,7 +6630,7 @@ fi
 ac_prog=ld
 if test "$GCC" = yes; then
   # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
 $as_echo_n "checking for ld used by $CC... " >&6; }
   case $host in
   *-*-mingw*)
@@ -6623,13 +6660,13 @@ $as_echo_n "checking for ld used by $CC... " >&6; }
     ;;
   esac
 elif test "$with_gnu_ld" = yes; then
-  { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
 $as_echo_n "checking for GNU ld... " >&6; }
 else
-  { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
 $as_echo_n "checking for non-GNU ld... " >&6; }
 fi
-if test "${lt_cv_path_LD+set}" = set; then
+if test "${lt_cv_path_LD+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
@@ -6660,18 +6697,16 @@ fi
 
 LD="$lt_cv_path_LD"
 if test -n "$LD"; then
-  { $as_echo "$as_me:$LINENO: result: $LD" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
 $as_echo "$LD" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
-test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
-{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then
+if test "${lt_cv_prog_gnu_ld+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   # I'd rather use --version here, but apparently some GNU lds only accept -v.
@@ -6684,7 +6719,7 @@ case `$LD -v 2>&1 </dev/null` in
   ;;
 esac
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
 $as_echo "$lt_cv_prog_gnu_ld" >&6; }
 with_gnu_ld=$lt_cv_prog_gnu_ld
 
@@ -6696,9 +6731,9 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
 
 
 
-{ $as_echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if test "${lt_cv_path_NM+set}" = set; then
+if test "${lt_cv_path_NM+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$NM"; then
@@ -6745,7 +6780,7 @@ else
   : ${lt_cv_path_NM=no}
 fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
 $as_echo "$lt_cv_path_NM" >&6; }
 if test "$lt_cv_path_NM" != "no"; then
   NM="$lt_cv_path_NM"
@@ -6756,9 +6791,9 @@ else
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DUMPBIN+set}" = set; then
+if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$DUMPBIN"; then
@@ -6769,24 +6804,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 DUMPBIN=$ac_cv_prog_DUMPBIN
 if test -n "$DUMPBIN"; then
-  { $as_echo "$as_me:$LINENO: result: $DUMPBIN" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
 $as_echo "$DUMPBIN" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6800,9 +6835,9 @@ if test -z "$DUMPBIN"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then
+if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_DUMPBIN"; then
@@ -6813,24 +6848,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
 if test -n "$ac_ct_DUMPBIN"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
 $as_echo "$ac_ct_DUMPBIN" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6843,7 +6878,7 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -6863,33 +6898,33 @@ test -z "$NM" && NM=nm
 
 
 
-{ $as_echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
 $as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if test "${lt_cv_nm_interface+set}" = set; then
+if test "${lt_cv_nm_interface+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:6873: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:6908: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:6876: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:6911: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:6879: output\"" >&5)
+  (eval echo "\"\$as_me:6914: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
   fi
   rm -f conftest*
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
 $as_echo "$lt_cv_nm_interface" >&6; }
 
 # find the maximum length of command line arguments
-{ $as_echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
 $as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if test "${lt_cv_sys_max_cmd_len+set}" = set; then
+if test "${lt_cv_sys_max_cmd_len+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
     i=0
@@ -7007,10 +7042,10 @@ else
 fi
 
 if test -n $lt_cv_sys_max_cmd_len ; then
-  { $as_echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
 $as_echo "$lt_cv_sys_max_cmd_len" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: none" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
 $as_echo "none" >&6; }
 fi
 max_cmd_len=$lt_cv_sys_max_cmd_len
@@ -7024,7 +7059,7 @@ max_cmd_len=$lt_cv_sys_max_cmd_len
 : ${MV="mv -f"}
 : ${RM="rm -f"}
 
-{ $as_echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
 # Try some XSI features
 xsi_shell=no
@@ -7034,17 +7069,17 @@ xsi_shell=no
     && eval 'test $(( 1 + 1 )) -eq 2 \
     && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
   && xsi_shell=yes
-{ $as_echo "$as_me:$LINENO: result: $xsi_shell" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
 $as_echo "$xsi_shell" >&6; }
 
 
-{ $as_echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
 lt_shell_append=no
 ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
     >/dev/null 2>&1 \
   && lt_shell_append=yes
-{ $as_echo "$as_me:$LINENO: result: $lt_shell_append" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
 $as_echo "$lt_shell_append" >&6; }
 
 
@@ -7079,14 +7114,14 @@ esac
 
 
 
-{ $as_echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
 $as_echo_n "checking for $LD option to reload object files... " >&6; }
-if test "${lt_cv_ld_reload_flag+set}" = set; then
+if test "${lt_cv_ld_reload_flag+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_ld_reload_flag='-r'
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
 $as_echo "$lt_cv_ld_reload_flag" >&6; }
 reload_flag=$lt_cv_ld_reload_flag
 case $reload_flag in
@@ -7115,9 +7150,9 @@ esac
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
 set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OBJDUMP+set}" = set; then
+if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OBJDUMP"; then
@@ -7128,24 +7163,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 OBJDUMP=$ac_cv_prog_OBJDUMP
 if test -n "$OBJDUMP"; then
-  { $as_echo "$as_me:$LINENO: result: $OBJDUMP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
 $as_echo "$OBJDUMP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7155,9 +7190,9 @@ if test -z "$ac_cv_prog_OBJDUMP"; then
   ac_ct_OBJDUMP=$OBJDUMP
   # Extract the first word of "objdump", so it can be a program name with args.
 set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then
+if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OBJDUMP"; then
@@ -7168,24 +7203,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_OBJDUMP="objdump"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
 if test -n "$ac_ct_OBJDUMP"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
 $as_echo "$ac_ct_OBJDUMP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7194,7 +7229,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -7211,9 +7246,9 @@ test -z "$OBJDUMP" && OBJDUMP=objdump
 
 
 
-{ $as_echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
 $as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if test "${lt_cv_deplibs_check_method+set}" = set; then
+if test "${lt_cv_deplibs_check_method+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_file_magic_cmd='$MAGIC_CMD'
@@ -7332,7 +7367,7 @@ linux* | k*bsd*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-netbsd*)
+netbsd* | netbsdelf*-gnu)
   if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
   else
@@ -7407,7 +7442,7 @@ tpf*)
 esac
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
 $as_echo "$lt_cv_deplibs_check_method" >&6; }
 file_magic_cmd=$lt_cv_file_magic_cmd
 deplibs_check_method=$lt_cv_deplibs_check_method
@@ -7427,9 +7462,9 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then
+if test "${ac_cv_prog_AR+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AR"; then
@@ -7440,24 +7475,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AR="${ac_tool_prefix}ar"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 AR=$ac_cv_prog_AR
 if test -n "$AR"; then
-  { $as_echo "$as_me:$LINENO: result: $AR" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
 $as_echo "$AR" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7467,9 +7502,9 @@ if test -z "$ac_cv_prog_AR"; then
   ac_ct_AR=$AR
   # Extract the first word of "ar", so it can be a program name with args.
 set dummy ar; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_AR"; then
@@ -7480,24 +7515,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_AR="ar"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_AR=$ac_cv_prog_ac_ct_AR
 if test -n "$ac_ct_AR"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
 $as_echo "$ac_ct_AR" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7506,7 +7541,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -7532,9 +7567,9 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then
+if test "${ac_cv_prog_STRIP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$STRIP"; then
@@ -7545,24 +7580,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 STRIP=$ac_cv_prog_STRIP
 if test -n "$STRIP"; then
-  { $as_echo "$as_me:$LINENO: result: $STRIP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
 $as_echo "$STRIP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7572,9 +7607,9 @@ if test -z "$ac_cv_prog_STRIP"; then
   ac_ct_STRIP=$STRIP
   # Extract the first word of "strip", so it can be a program name with args.
 set dummy strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
@@ -7585,24 +7620,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
 $as_echo "$ac_ct_STRIP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7611,7 +7646,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -7631,9 +7666,9 @@ test -z "$STRIP" && STRIP=:
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then
+if test "${ac_cv_prog_RANLIB+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$RANLIB"; then
@@ -7644,24 +7679,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 RANLIB=$ac_cv_prog_RANLIB
 if test -n "$RANLIB"; then
-  { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
 $as_echo "$RANLIB" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7671,9 +7706,9 @@ if test -z "$ac_cv_prog_RANLIB"; then
   ac_ct_RANLIB=$RANLIB
   # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_RANLIB"; then
@@ -7684,24 +7719,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_RANLIB="ranlib"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 if test -n "$ac_ct_RANLIB"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
 $as_echo "$ac_ct_RANLIB" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7710,7 +7745,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -7788,9 +7823,9 @@ compiler=$CC
 
 
 # Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
+if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -7906,18 +7941,18 @@ void nm_test_func(void){}
 int main(){nm_test_var='a';nm_test_func();return(0);}
 _LT_EOF
 
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
     # Now try to grab the symbols.
     nlist=conftest.nm
-    if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5
   (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s "$nlist"; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s "$nlist"; then
       # Try sorting and uniquifying the output.
       if sort "$nlist" | uniq > "$nlist"T; then
 	mv -f "$nlist"T "$nlist"
@@ -7970,11 +8005,11 @@ _LT_EOF
 	  lt_save_CFLAGS="$CFLAGS"
 	  LIBS="conftstm.$ac_objext"
 	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
-	  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext}; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest${ac_exeext}; then
 	    pipe_works=yes
 	  fi
 	  LIBS="$lt_save_LIBS"
@@ -8008,10 +8043,10 @@ if test -z "$lt_cv_sys_global_symbol_pipe"; then
   lt_cv_sys_global_symbol_to_cdecl=
 fi
 if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  { $as_echo "$as_me:$LINENO: result: failed" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
 $as_echo "failed" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: ok" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
 $as_echo "ok" >&6; }
 fi
 
@@ -8037,7 +8072,7 @@ fi
 
 
 # Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
+if test "${enable_libtool_lock+set}" = set; then :
   enableval=$enable_libtool_lock;
 fi
 
@@ -8049,11 +8084,11 @@ case $host in
 ia64-*-hpux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
     case `/usr/bin/file conftest.$ac_objext` in
       *ELF-32*)
 	HPUX_IA64_MODE="32"
@@ -8067,12 +8102,12 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 8070 "configure"' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  echo '#line 8105 "configure"' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
     if test "$lt_cv_prog_gnu_ld" = yes; then
       case `/usr/bin/file conftest.$ac_objext` in
 	*32-bit*)
@@ -8106,11 +8141,11 @@ x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
     case `/usr/bin/file conftest.o` in
       *32-bit*)
 	case $host in
@@ -8159,9 +8194,9 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
   SAVE_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS -belf"
-  { $as_echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
 $as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if test "${lt_cv_cc_needs_belf+set}" = set; then
+if test "${lt_cv_cc_needs_belf+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_ext=c
@@ -8170,11 +8205,7 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-     cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -8185,38 +8216,13 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   lt_cv_cc_needs_belf=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	lt_cv_cc_needs_belf=no
+  lt_cv_cc_needs_belf=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
      ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -8224,7 +8230,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
 $as_echo "$lt_cv_cc_needs_belf" >&6; }
   if test x"$lt_cv_cc_needs_belf" != x"yes"; then
     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
@@ -8234,11 +8240,11 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
 sparc*-*solaris*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
@@ -8264,9 +8270,9 @@ need_locks="$enable_libtool_lock"
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
 set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DSYMUTIL+set}" = set; then
+if test "${ac_cv_prog_DSYMUTIL+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$DSYMUTIL"; then
@@ -8277,24 +8283,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 DSYMUTIL=$ac_cv_prog_DSYMUTIL
 if test -n "$DSYMUTIL"; then
-  { $as_echo "$as_me:$LINENO: result: $DSYMUTIL" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
 $as_echo "$DSYMUTIL" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8304,9 +8310,9 @@ if test -z "$ac_cv_prog_DSYMUTIL"; then
   ac_ct_DSYMUTIL=$DSYMUTIL
   # Extract the first word of "dsymutil", so it can be a program name with args.
 set dummy dsymutil; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then
+if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_DSYMUTIL"; then
@@ -8317,24 +8323,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
 if test -n "$ac_ct_DSYMUTIL"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
 $as_echo "$ac_ct_DSYMUTIL" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8343,7 +8349,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -8356,9 +8362,9 @@ fi
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
 set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_NMEDIT+set}" = set; then
+if test "${ac_cv_prog_NMEDIT+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$NMEDIT"; then
@@ -8369,24 +8375,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 NMEDIT=$ac_cv_prog_NMEDIT
 if test -n "$NMEDIT"; then
-  { $as_echo "$as_me:$LINENO: result: $NMEDIT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
 $as_echo "$NMEDIT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8396,9 +8402,9 @@ if test -z "$ac_cv_prog_NMEDIT"; then
   ac_ct_NMEDIT=$NMEDIT
   # Extract the first word of "nmedit", so it can be a program name with args.
 set dummy nmedit; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then
+if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_NMEDIT"; then
@@ -8409,24 +8415,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_NMEDIT="nmedit"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
 if test -n "$ac_ct_NMEDIT"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
 $as_echo "$ac_ct_NMEDIT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8435,7 +8441,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -8448,9 +8454,9 @@ fi
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
 set dummy ${ac_tool_prefix}lipo; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_LIPO+set}" = set; then
+if test "${ac_cv_prog_LIPO+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$LIPO"; then
@@ -8461,24 +8467,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 LIPO=$ac_cv_prog_LIPO
 if test -n "$LIPO"; then
-  { $as_echo "$as_me:$LINENO: result: $LIPO" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
 $as_echo "$LIPO" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8488,9 +8494,9 @@ if test -z "$ac_cv_prog_LIPO"; then
   ac_ct_LIPO=$LIPO
   # Extract the first word of "lipo", so it can be a program name with args.
 set dummy lipo; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then
+if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_LIPO"; then
@@ -8501,24 +8507,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_LIPO="lipo"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
 if test -n "$ac_ct_LIPO"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
 $as_echo "$ac_ct_LIPO" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8527,7 +8533,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -8540,9 +8546,9 @@ fi
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
 set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL+set}" = set; then
+if test "${ac_cv_prog_OTOOL+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OTOOL"; then
@@ -8553,24 +8559,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 OTOOL=$ac_cv_prog_OTOOL
 if test -n "$OTOOL"; then
-  { $as_echo "$as_me:$LINENO: result: $OTOOL" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
 $as_echo "$OTOOL" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8580,9 +8586,9 @@ if test -z "$ac_cv_prog_OTOOL"; then
   ac_ct_OTOOL=$OTOOL
   # Extract the first word of "otool", so it can be a program name with args.
 set dummy otool; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then
+if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OTOOL"; then
@@ -8593,24 +8599,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_OTOOL="otool"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
 if test -n "$ac_ct_OTOOL"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
 $as_echo "$ac_ct_OTOOL" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8619,7 +8625,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -8632,9 +8638,9 @@ fi
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
 set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL64+set}" = set; then
+if test "${ac_cv_prog_OTOOL64+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OTOOL64"; then
@@ -8645,24 +8651,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 OTOOL64=$ac_cv_prog_OTOOL64
 if test -n "$OTOOL64"; then
-  { $as_echo "$as_me:$LINENO: result: $OTOOL64" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
 $as_echo "$OTOOL64" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8672,9 +8678,9 @@ if test -z "$ac_cv_prog_OTOOL64"; then
   ac_ct_OTOOL64=$OTOOL64
   # Extract the first word of "otool64", so it can be a program name with args.
 set dummy otool64; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then
+if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OTOOL64"; then
@@ -8685,24 +8691,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_OTOOL64="otool64"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
 if test -n "$ac_ct_OTOOL64"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
 $as_echo "$ac_ct_OTOOL64" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8711,7 +8717,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -8747,9 +8753,9 @@ fi
 
 
 
-    { $as_echo "$as_me:$LINENO: checking for -single_module linker flag" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
 $as_echo_n "checking for -single_module linker flag... " >&6; }
-if test "${lt_cv_apple_cc_single_mod+set}" = set; then
+if test "${lt_cv_apple_cc_single_mod+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_apple_cc_single_mod=no
@@ -8774,22 +8780,18 @@ else
 	rm -f conftest.*
       fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
 $as_echo "$lt_cv_apple_cc_single_mod" >&6; }
-    { $as_echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if test "${lt_cv_ld_exported_symbols_list+set}" = set; then
+if test "${lt_cv_ld_exported_symbols_list+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_ld_exported_symbols_list=no
       save_LDFLAGS=$LDFLAGS
       echo "_main" > conftest.sym
       LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -8800,42 +8802,17 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   lt_cv_ld_exported_symbols_list=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	lt_cv_ld_exported_symbols_list=no
+  lt_cv_ld_exported_symbols_list=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 	LDFLAGS="$save_LDFLAGS"
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
     case $host_os in
     rhapsody* | darwin1.[012])
@@ -8873,69 +8850,14 @@ $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
   esac
 
 # On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
 for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
 		  inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_ac_Header=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -8945,62 +8867,13 @@ fi
 done
 
 
-
 for ac_header in dlfcn.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_ac_Header=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_DLFCN_H 1
 _ACEOF
 
 fi
@@ -9018,7 +8891,7 @@ done
 
 
             # Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then
+if test "${enable_shared+set}" = set; then :
   enableval=$enable_shared; p=${PACKAGE-default}
     case $enableval in
     yes) enable_shared=yes ;;
@@ -9049,7 +8922,7 @@ fi
 
 
   # Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then
+if test "${enable_static+set}" = set; then :
   enableval=$enable_static; p=${PACKAGE-default}
     case $enableval in
     yes) enable_static=yes ;;
@@ -9081,7 +8954,7 @@ fi
 
 
 # Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then
+if test "${with_pic+set}" = set; then :
   withval=$with_pic; pic_mode="$withval"
 else
   pic_mode=default
@@ -9097,7 +8970,7 @@ test -z "$pic_mode" && pic_mode=default
 
 
   # Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then
+if test "${enable_fast_install+set}" = set; then :
   enableval=$enable_fast_install; p=${PACKAGE-default}
     case $enableval in
     yes) enable_fast_install=yes ;;
@@ -9178,9 +9051,9 @@ if test -n "${ZSH_VERSION+set}" ; then
    setopt NO_GLOB_SUBST
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for objdir" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
 $as_echo_n "checking for objdir... " >&6; }
-if test "${lt_cv_objdir+set}" = set; then
+if test "${lt_cv_objdir+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   rm -f .libs 2>/dev/null
@@ -9193,7 +9066,7 @@ else
 fi
 rmdir .libs 2>/dev/null
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
 $as_echo "$lt_cv_objdir" >&6; }
 objdir=$lt_cv_objdir
 
@@ -9286,9 +9159,9 @@ test -z "$MAGIC_CMD" && MAGIC_CMD=file
 case $deplibs_check_method in
 file_magic*)
   if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    { $as_echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $MAGIC_CMD in
@@ -9339,10 +9212,10 @@ fi
 
 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
 if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
 $as_echo "$MAGIC_CMD" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -9352,9 +9225,9 @@ fi
 
 if test -z "$lt_cv_path_MAGIC_CMD"; then
   if test -n "$ac_tool_prefix"; then
-    { $as_echo "$as_me:$LINENO: checking for file" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
 $as_echo_n "checking for file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $MAGIC_CMD in
@@ -9405,10 +9278,10 @@ fi
 
 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
 if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
 $as_echo "$MAGIC_CMD" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -9489,9 +9362,9 @@ lt_prog_compiler_no_builtin_flag=
 if test "$GCC" = yes; then
   lt_prog_compiler_no_builtin_flag=' -fno-builtin'
 
-  { $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_rtti_exceptions=no
@@ -9507,11 +9380,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9510: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9383: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:9514: \$? = $ac_status" >&5
+   echo "$as_me:9387: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -9524,7 +9397,7 @@ else
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
 
 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
@@ -9544,7 +9417,7 @@ fi
 lt_prog_compiler_pic=
 lt_prog_compiler_static=
 
-{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
 $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 
   if test "$GCC" = yes; then
@@ -9816,7 +9689,7 @@ case $host_os in
     lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
     ;;
 esac
-{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
 $as_echo "$lt_prog_compiler_pic" >&6; }
 
 
@@ -9828,9 +9701,9 @@ $as_echo "$lt_prog_compiler_pic" >&6; }
 # Check to make sure the PIC flag actually works.
 #
 if test -n "$lt_prog_compiler_pic"; then
-  { $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if test "${lt_cv_prog_compiler_pic_works+set}" = set; then
+if test "${lt_cv_prog_compiler_pic_works+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_pic_works=no
@@ -9846,11 +9719,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9849: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9722: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:9853: \$? = $ac_status" >&5
+   echo "$as_me:9726: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -9863,7 +9736,7 @@ else
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
 
 if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
@@ -9887,9 +9760,9 @@ fi
 # Check to make sure the static flag actually works.
 #
 wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if test "${lt_cv_prog_compiler_static_works+set}" = set; then
+if test "${lt_cv_prog_compiler_static_works+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_static_works=no
@@ -9915,7 +9788,7 @@ else
    LDFLAGS="$save_LDFLAGS"
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
 $as_echo "$lt_cv_prog_compiler_static_works" >&6; }
 
 if test x"$lt_cv_prog_compiler_static_works" = xyes; then
@@ -9930,9 +9803,9 @@ fi
 
 
 
-  { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o=no
@@ -9951,11 +9824,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9954: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9827: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:9958: \$? = $ac_status" >&5
+   echo "$as_me:9831: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -9977,7 +9850,7 @@ else
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
 $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 
 
@@ -9985,9 +9858,9 @@ $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 
 
 
-  { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o=no
@@ -10006,11 +9879,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:10009: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9882: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:10013: \$? = $ac_status" >&5
+   echo "$as_me:9886: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -10032,7 +9905,7 @@ else
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
 $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 
 
@@ -10041,7 +9914,7 @@ $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 hard_links="nottested"
 if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
   # do not overwrite the value of need_locks provided by the user
-  { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
 $as_echo_n "checking if we can lock with hard links... " >&6; }
   hard_links=yes
   $RM conftest*
@@ -10049,10 +9922,10 @@ $as_echo_n "checking if we can lock with hard links... " >&6; }
   touch conftest.a
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { $as_echo "$as_me:$LINENO: result: $hard_links" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
 $as_echo "$hard_links" >&6; }
   if test "$hard_links" = no; then
-    { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
     need_locks=warn
   fi
@@ -10065,7 +9938,7 @@ fi
 
 
 
-  { $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
 
   runpath_var=
@@ -10125,6 +9998,9 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
   openbsd*)
     with_gnu_ld=no
     ;;
+  linux* | k*bsd*-gnu)
+    link_all_deplibs=no
+    ;;
   esac
 
   ld_shlibs=yes
@@ -10307,7 +10183,7 @@ _LT_EOF
       fi
       ;;
 
-    netbsd*)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
 	wlarc=
@@ -10482,6 +10358,7 @@ _LT_EOF
 	if test "$aix_use_runtimelinking" = yes; then
 	  shared_flag="$shared_flag "'${wl}-G'
 	fi
+	link_all_deplibs=no
       else
 	# not using gcc
 	if test "$host_cpu" = ia64; then
@@ -10507,11 +10384,7 @@ _LT_EOF
 	allow_undefined_flag='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -10522,27 +10395,7 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -10556,16 +10409,9 @@ aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpat
 if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
         hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
@@ -10578,11 +10424,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	else
 	 # Determine the default libpath from the value encoded in an
 	 # empty executable.
-	 cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -10593,27 +10435,7 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -10627,16 +10449,9 @@ aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpat
 if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
 	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
@@ -10848,42 +10663,16 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	# implicitly export all symbols.
         save_LDFLAGS="$LDFLAGS"
         LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-        cat >conftest.$ac_ext <<_ACEOF
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 int foo(void) {}
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
 
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
         LDFLAGS="$save_LDFLAGS"
       else
 	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
@@ -10896,7 +10685,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       link_all_deplibs=yes
       ;;
 
-    netbsd*)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
       else
@@ -11139,7 +10928,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
     fi
   fi
 
-{ $as_echo "$as_me:$LINENO: result: $ld_shlibs" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
 $as_echo "$ld_shlibs" >&6; }
 test "$ld_shlibs" = no && can_build_shared=no
 
@@ -11176,16 +10965,16 @@ x|xyes)
       # Test whether the compiler implicitly links with -lc since on some
       # systems, -lgcc has to come before -lc. If gcc already passes -lc
       # to ld, don't add -lc before -lgcc.
-      { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
       $RM conftest*
       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+      if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } 2>conftest.err; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } 2>conftest.err; then
         soname=conftest
         lib=conftest
         libobjs=conftest.$ac_objext
@@ -11199,11 +10988,11 @@ $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
         libname=conftest
         lt_save_allow_undefined_flag=$allow_undefined_flag
         allow_undefined_flag=
-        if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+        if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
   (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
         then
 	  archive_cmds_need_lc=no
         else
@@ -11214,7 +11003,7 @@ $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
         cat conftest.err 1>&5
       fi
       $RM conftest*
-      { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5
 $as_echo "$archive_cmds_need_lc" >&6; }
       ;;
     esac
@@ -11378,7 +11167,7 @@ esac
 
 
 
-  { $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
 $as_echo_n "checking dynamic linker characteristics... " >&6; }
 
 if test "$GCC" = yes; then
@@ -11800,11 +11589,7 @@ linux* | k*bsd*-gnu)
   save_libdir=$libdir
   eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
        LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -11815,41 +11600,13 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
+if ac_fn_c_try_link "$LINENO"; then :
+  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
   shlibpath_overrides_runpath=yes
 fi
-
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   LDFLAGS=$save_LDFLAGS
   libdir=$save_libdir
 
@@ -11873,6 +11630,18 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
   dynamic_linker='GNU/Linux ld.so'
   ;;
 
+netbsdelf*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='NetBSD ld.elf_so'
+  ;;
+
 netbsd*)
   version_type=sunos
   need_lib_prefix=no
@@ -12061,7 +11830,7 @@ uts4*)
   dynamic_linker=no
   ;;
 esac
-{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
 $as_echo "$dynamic_linker" >&6; }
 test "$dynamic_linker" = no && can_build_shared=no
 
@@ -12163,7 +11932,7 @@ fi
 
 
 
-  { $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
 $as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action=
 if test -n "$hardcode_libdir_flag_spec" ||
@@ -12188,7 +11957,7 @@ else
   # directories.
   hardcode_action=unsupported
 fi
-{ $as_echo "$as_me:$LINENO: result: $hardcode_action" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
 $as_echo "$hardcode_action" >&6; }
 
 if test "$hardcode_action" = relink ||
@@ -12233,18 +12002,14 @@ else
 
   darwin*)
   # if libdl is installed we need to link against it
-    { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -12262,43 +12027,18 @@ return dlopen ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dl_dlopen=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_dl_dlopen=no
+  ac_cv_lib_dl_dlopen=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
 
@@ -12311,106 +12051,18 @@ fi
     ;;
 
   *)
-    { $as_echo "$as_me:$LINENO: checking for shl_load" >&5
-$as_echo_n "checking for shl_load... " >&6; }
-if test "${ac_cv_func_shl_load+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define shl_load innocuous_shl_load
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shl_load (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef shl_load
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_shl_load || defined __stub___shl_load
-choke me
-#endif
-
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_shl_load=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func_shl_load=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-$as_echo "$ac_cv_func_shl_load" >&6; }
-if test "x$ac_cv_func_shl_load" = x""yes; then
+    ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = x""yes; then :
   lt_cv_dlopen="shl_load"
 else
-  { $as_echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
 $as_echo_n "checking for shl_load in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -12428,145 +12080,32 @@ return shl_load ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dld_shl_load=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_dld_shl_load=no
+  ac_cv_lib_dld_shl_load=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
 $as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = x""yes; then
+if test "x$ac_cv_lib_dld_shl_load" = x""yes; then :
   lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
 else
-  { $as_echo "$as_me:$LINENO: checking for dlopen" >&5
-$as_echo_n "checking for dlopen... " >&6; }
-if test "${ac_cv_func_dlopen+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define dlopen innocuous_dlopen
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlopen (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef dlopen
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_dlopen || defined __stub___dlopen
-choke me
-#endif
-
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_dlopen=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func_dlopen=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-$as_echo "$ac_cv_func_dlopen" >&6; }
-if test "x$ac_cv_func_dlopen" = x""yes; then
+  ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = x""yes; then :
   lt_cv_dlopen="dlopen"
 else
-  { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -12584,57 +12123,28 @@ return dlopen ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dl_dlopen=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_dl_dlopen=no
+  ac_cv_lib_dl_dlopen=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
-  { $as_echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
 $as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lsvld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -12652,57 +12162,28 @@ return dlopen ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_svld_dlopen=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_svld_dlopen=no
+  ac_cv_lib_svld_dlopen=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
 $as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = x""yes; then
+if test "x$ac_cv_lib_svld_dlopen" = x""yes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
 else
-  { $as_echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
 $as_echo_n "checking for dld_link in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -12720,43 +12201,18 @@ return dld_link ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dld_dld_link=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_dld_dld_link=no
+  ac_cv_lib_dld_dld_link=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
 $as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = x""yes; then
+if test "x$ac_cv_lib_dld_dld_link" = x""yes; then :
   lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
 fi
 
@@ -12795,9 +12251,9 @@ fi
     save_LIBS="$LIBS"
     LIBS="$lt_cv_dlopen_libs $LIBS"
 
-    { $as_echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
 $as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self+set}" = set; then
+if test "${lt_cv_dlopen_self+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   	  if test "$cross_compiling" = yes; then :
@@ -12806,7 +12262,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12809 "configure"
+#line 12265 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12865,11 +12321,11 @@ int main ()
   return status;
 }
 _LT_EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
     case x$lt_status in
@@ -12886,14 +12342,14 @@ rm -fr conftest*
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
 $as_echo "$lt_cv_dlopen_self" >&6; }
 
     if test "x$lt_cv_dlopen_self" = xyes; then
       wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      { $as_echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then
+if test "${lt_cv_dlopen_self_static+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   	  if test "$cross_compiling" = yes; then :
@@ -12902,7 +12358,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12905 "configure"
+#line 12361 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -12961,11 +12417,11 @@ int main ()
   return status;
 }
 _LT_EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
     case x$lt_status in
@@ -12982,7 +12438,7 @@ rm -fr conftest*
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
 $as_echo "$lt_cv_dlopen_self_static" >&6; }
     fi
 
@@ -13021,12 +12477,12 @@ fi
 
 striplib=
 old_striplib=
-{ $as_echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
 $as_echo_n "checking whether stripping libraries is possible... " >&6; }
 if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
   test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
   test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 else
 # FIXME - insert some real tests, host_os isn't really good enough
@@ -13035,15 +12491,15 @@ else
     if test -n "$STRIP" ; then
       striplib="$STRIP -x"
       old_striplib="$STRIP -S"
-      { $as_echo "$as_me:$LINENO: result: yes" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
     else
-      { $as_echo "$as_me:$LINENO: result: no" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
     fi
     ;;
   *)
-    { $as_echo "$as_me:$LINENO: result: no" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
     ;;
   esac
@@ -13061,12 +12517,12 @@ fi
 
 
   # Report which library types will actually be built
-  { $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
 $as_echo_n "checking if libtool supports shared libraries... " >&6; }
-  { $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
 $as_echo "$can_build_shared" >&6; }
 
-  { $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
 $as_echo_n "checking whether to build shared libraries... " >&6; }
   test "$can_build_shared" = "no" && enable_shared=no
 
@@ -13087,14 +12543,14 @@ $as_echo_n "checking whether to build shared libraries... " >&6; }
     fi
     ;;
   esac
-  { $as_echo "$as_me:$LINENO: result: $enable_shared" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
 $as_echo "$enable_shared" >&6; }
 
-  { $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
 $as_echo_n "checking whether to build static libraries... " >&6; }
   # Make sure either enable_shared or enable_static is yes.
   test "$enable_shared" = yes || enable_static=yes
-  { $as_echo "$as_me:$LINENO: result: $enable_static" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
 $as_echo "$enable_static" >&6; }
 
 
@@ -13136,9 +12592,9 @@ CC="$lt_save_CC"
 # Josh Triplett <josh at freedesktop.org>
 # Extract the first word of "bash", so it can be a program name with args.
 set dummy bash; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_DOLT_BASH+set}" = set; then
+if test "${ac_cv_path_DOLT_BASH+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $DOLT_BASH in
@@ -13151,14 +12607,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_DOLT_BASH="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   ;;
@@ -13166,15 +12622,15 @@ esac
 fi
 DOLT_BASH=$ac_cv_path_DOLT_BASH
 if test -n "$DOLT_BASH"; then
-  { $as_echo "$as_me:$LINENO: result: $DOLT_BASH" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DOLT_BASH" >&5
 $as_echo "$DOLT_BASH" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
-{ $as_echo "$as_me:$LINENO: checking if dolt supports this host" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if dolt supports this host" >&5
 $as_echo_n "checking if dolt supports this host... " >&6; }
 dolt_supported=yes
 if test x$DOLT_BASH = x; then
@@ -13196,12 +12652,12 @@ i?86-apple-darwin*)
     ;;
 esac
 if test x$dolt_supported = xno ; then
-    { $as_echo "$as_me:$LINENO: result: no, falling back to libtool" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, falling back to libtool" >&5
 $as_echo "no, falling back to libtool" >&6; }
     LTCOMPILE='$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(COMPILE)'
     LTCXXCOMPILE='$(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXXCOMPILE)'
 else
-    { $as_echo "$as_me:$LINENO: result: yes, replacing libtool" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, replacing libtool" >&5
 $as_echo "yes, replacing libtool" >&6; }
 
     cat <<__DOLTCOMPILE__EOF__ >doltcompile
@@ -13336,7 +12792,7 @@ export_ldflags=`(./libtool --config; echo eval echo \\$export_dynamic_flag_spec)
 
 
 # Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
+if test "${with_gnu_ld+set}" = set; then :
   withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
 else
   with_gnu_ld=no
@@ -13345,7 +12801,7 @@ fi
 ac_prog=ld
 if test "$GCC" = yes; then
   # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
 $as_echo_n "checking for ld used by $CC... " >&6; }
   case $host in
   *-*-mingw*)
@@ -13375,13 +12831,13 @@ $as_echo_n "checking for ld used by $CC... " >&6; }
     ;;
   esac
 elif test "$with_gnu_ld" = yes; then
-  { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
 $as_echo_n "checking for GNU ld... " >&6; }
 else
-  { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
 $as_echo_n "checking for non-GNU ld... " >&6; }
 fi
-if test "${lt_cv_path_LD+set}" = set; then
+if test "${lt_cv_path_LD+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
@@ -13412,18 +12868,16 @@ fi
 
 LD="$lt_cv_path_LD"
 if test -n "$LD"; then
-  { $as_echo "$as_me:$LINENO: result: $LD" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
 $as_echo "$LD" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
-test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
-{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then
+if test "${lt_cv_prog_gnu_ld+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   # I'd rather use --version here, but apparently some GNU lds only accept -v.
@@ -13436,7 +12890,7 @@ case `$LD -v 2>&1 </dev/null` in
   ;;
 esac
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
 $as_echo "$lt_cv_prog_gnu_ld" >&6; }
 with_gnu_ld=$lt_cv_prog_gnu_ld
 
@@ -13459,153 +12913,12 @@ else
 fi
 
 
-
-
-
-
-
-
-
-
-
-
 for ac_header in sys/filio.h sys/sockio.h netdb.h utime.h sys/utime.h semaphore.h sys/un.h linux/rtc.h sys/syscall.h sys/mkdev.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -13614,151 +12927,12 @@ fi
 
 done
 
-
-
-
-
-
-
-
-
 for ac_header in sys/user.h sys/socket.h sys/ipc.h sys/sem.h sys/utsname.h alloca.h ucontext.h pwd.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -13768,134 +12942,8 @@ fi
 done
 
 
-if test "${ac_cv_header_zlib_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for zlib.h" >&5
-$as_echo_n "checking for zlib.h... " >&6; }
-if test "${ac_cv_header_zlib_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_zlib_h" >&5
-$as_echo "$ac_cv_header_zlib_h" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking zlib.h usability" >&5
-$as_echo_n "checking zlib.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <zlib.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking zlib.h presence" >&5
-$as_echo_n "checking zlib.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <zlib.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: zlib.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: zlib.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: zlib.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: zlib.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: zlib.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: zlib.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: zlib.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: zlib.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: zlib.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: zlib.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: zlib.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: zlib.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: zlib.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: zlib.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: zlib.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: zlib.h: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for zlib.h" >&5
-$as_echo_n "checking for zlib.h... " >&6; }
-if test "${ac_cv_header_zlib_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_header_zlib_h=$ac_header_preproc
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_zlib_h" >&5
-$as_echo "$ac_cv_header_zlib_h" >&6; }
-
-fi
-if test "x$ac_cv_header_zlib_h" = x""yes; then
+ac_fn_c_check_header_mongrel "$LINENO" "zlib.h" "ac_cv_header_zlib_h" "$ac_includes_default"
+if test "x$ac_cv_header_zlib_h" = x""yes; then :
   have_zlib=yes
 else
   have_zlib=no
@@ -13903,11 +12951,7 @@ fi
 
 
 if test x$have_zlib = xyes; then
-   cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <zlib.h>
 int
@@ -13925,41 +12969,20 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
-	{ $as_echo "$as_me:$LINENO: result: Using system zlib" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Using system zlib" >&5
 $as_echo "Using system zlib" >&6; }
 	zlib_msg="system zlib"
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-
-	{ $as_echo "$as_me:$LINENO: result: Using embedded zlib" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: Using embedded zlib" >&5
 $as_echo "Using embedded zlib" >&6; }
 	have_zlib=no
 	zlib_msg="bundled zlib"
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 
@@ -13972,152 +12995,16 @@ else
 fi
 
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ZLIB 1
-_ACEOF
+$as_echo "#define HAVE_ZLIB 1" >>confdefs.h
 
 
 # for mono/metadata/debug-symfile.c
-
 for ac_header in elf.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "elf.h" "ac_cv_header_elf_h" "$ac_includes_default"
+if test "x$ac_cv_header_elf_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_ELF_H 1
 _ACEOF
 
 fi
@@ -14126,730 +13013,60 @@ done
 
 
 # for support
-
 for ac_header in poll.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "poll.h" "ac_cv_header_poll_h" "$ac_includes_default"
+if test "x$ac_cv_header_poll_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_POLL_H 1
 _ACEOF
 
 fi
 
 done
 
-
 for ac_header in sys/poll.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/poll.h" "ac_cv_header_sys_poll_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_poll_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_SYS_POLL_H 1
 _ACEOF
 
 fi
 
 done
 
-
 for ac_header in sys/wait.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/wait.h" "ac_cv_header_sys_wait_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_wait_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_SYS_WAIT_H 1
 _ACEOF
 
 fi
 
 done
 
-
 for ac_header in grp.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "grp.h" "ac_cv_header_grp_h" "$ac_includes_default"
+if test "x$ac_cv_header_grp_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_GRP_H 1
 _ACEOF
 
 fi
 
 done
 
-
 for ac_header in syslog.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "syslog.h" "ac_cv_header_syslog_h" "$ac_includes_default"
+if test "x$ac_cv_header_syslog_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_SYSLOG_H 1
 _ACEOF
 
 fi
@@ -14858,305 +13075,33 @@ done
 
 
 # for mono/dis
-
 for ac_header in wchar.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "wchar.h" "ac_cv_header_wchar_h" "$ac_includes_default"
+if test "x$ac_cv_header_wchar_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_WCHAR_H 1
 _ACEOF
 
 fi
 
 done
 
-
 for ac_header in ieeefp.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "ieeefp.h" "ac_cv_header_ieeefp_h" "$ac_includes_default"
+if test "x$ac_cv_header_ieeefp_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_IEEEFP_H 1
 _ACEOF
 
 fi
 
 done
 
-{ $as_echo "$as_me:$LINENO: checking for isinf" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for isinf" >&5
 $as_echo_n "checking for isinf... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <math.h>
 int
@@ -15169,50 +13114,23 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
 
-	{ $as_echo "$as_me:$LINENO: result: yes" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ISINF 1
-_ACEOF
+$as_echo "#define HAVE_ISINF 1" >>confdefs.h
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
 
 	# We'll have to use signals
-	{ $as_echo "$as_me:$LINENO: result: no" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
 
 # not 64 bit clean in cross-compile
@@ -15220,352 +13138,27 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
 # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
 # This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:$LINENO: checking size of void *" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5
 $as_echo_n "checking size of void *... " >&6; }
-if test "${ac_cv_sizeof_void_p+set}" = set; then
+if test "${ac_cv_sizeof_void_p+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (void *))) >= 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (void *))) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_lo=`expr $ac_mid + 1`
-			if test $ac_lo -le $ac_mid; then
-			  ac_lo= ac_hi=
-			  break
-			fi
-			ac_mid=`expr 2 '*' $ac_mid + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (void *))) < 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (void *))) >= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p"        "$ac_includes_default"; then :
 
-	ac_hi=`expr '(' $ac_mid ')' - 1`
-			if test $ac_mid -le $ac_hi; then
-			  ac_lo= ac_hi=
-			  break
-			fi
-			ac_mid=`expr 2 '*' $ac_mid`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_lo= ac_hi=
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (void *))) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) ac_cv_sizeof_void_p=$ac_lo;;
-'') if test "$ac_cv_type_void_p" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+  if test "$ac_cv_type_void_p" = yes; then
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (void *)
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute sizeof (void *)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
-   else
-     ac_cv_sizeof_void_p=0
-   fi ;;
-esac
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-static long int longval () { return (long int) (sizeof (void *)); }
-static unsigned long int ulongval () { return (long int) (sizeof (void *)); }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if (((long int) (sizeof (void *))) < 0)
-    {
-      long int i = longval ();
-      if (i != ((long int) (sizeof (void *))))
-	return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != ((long int) (sizeof (void *))))
-	return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_sizeof_void_p=`cat conftest.val`
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-if test "$ac_cv_type_void_p" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (void *)
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute sizeof (void *)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (void *)
+See \`config.log' for more details." "$LINENO" 5; }; }
    else
      ac_cv_sizeof_void_p=0
    fi
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.val
+
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_void_p" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5
 $as_echo "$ac_cv_sizeof_void_p" >&6; }
 
 
@@ -15584,13 +13177,9 @@ if test x"$GCC" = xyes; then
 
 		ORIG_CFLAGS=$CFLAGS
 		CFLAGS="$CFLAGS -Wdeclaration-after-statement"
-		{ $as_echo "$as_me:$LINENO: checking for -Wdeclaration-after-statement option to gcc" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -Wdeclaration-after-statement option to gcc" >&5
 $as_echo_n "checking for -Wdeclaration-after-statement option to gcc... " >&6; }
-		cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+		cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -15603,39 +13192,18 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
-		   { $as_echo "$as_me:$LINENO: result: yes" >&5
+		   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
 
-		   { $as_echo "$as_me:$LINENO: result: no" >&5
+		   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 		   CFLAGS=$ORIG_CFLAGS
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 else
 	# The Sun Forte compiler complains about inline functions that access static variables
@@ -15661,7 +13229,7 @@ fi
 # with an ancient tar program (Solaris)
 #
 # Check whether --enable-solaris-tar-check was given.
-if test "${enable_solaris_tar_check+set}" = set; then
+if test "${enable_solaris_tar_check+set}" = set; then :
   enableval=$enable_solaris_tar_check; do_solaris_tar_check=no
 else
   do_solaris_tar_check=yes
@@ -15669,17 +13237,15 @@ fi
 
 
 if test x"$do_solaris_tar_check" = xyes; then
-   	{ $as_echo "$as_me:$LINENO: checking integrity of package" >&5
+   	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking integrity of package" >&5
 $as_echo_n "checking integrity of package... " >&6; }
    	if test -f $srcdir/$mcsdir/class/System.Runtime.Serialization.Formatters.Soap/System.Runtime.Serialization.Formatters.Soap/SoapTypeMapper.cs
    	then
-		{ $as_echo "$as_me:$LINENO: result: ok" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
 $as_echo "ok" >&6; }
    	else
 		errorm="Your mono distribution is incomplete;  if unpacking from a tar file, make sure you use GNU tar;  see http://www.mono-project.com/IncompletePackage for more details"
-		{ { $as_echo "$as_me:$LINENO: error: $errorm" >&5
-$as_echo "$as_me: error: $errorm" >&2;}
-   { (exit 1); exit 1; }; }
+		as_fn_error "$errorm" "$LINENO" 5
 	fi
 fi
 
@@ -15713,16 +13279,16 @@ fi
 # gettext: prepare the translation directories.
 # we do not configure the full gettext, as we consume it dynamically from C#
 
-  { $as_echo "$as_me:$LINENO: checking whether NLS is requested" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5
 $as_echo_n "checking whether NLS is requested... " >&6; }
     # Check whether --enable-nls was given.
-if test "${enable_nls+set}" = set; then
+if test "${enable_nls+set}" = set; then :
   enableval=$enable_nls; USE_NLS=$enableval
 else
   USE_NLS=yes
 fi
 
-  { $as_echo "$as_me:$LINENO: result: $USE_NLS" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5
 $as_echo "$USE_NLS" >&6; }
 
 
@@ -15763,9 +13329,9 @@ rm -f conf$$.file
 
 # Extract the first word of "msgfmt", so it can be a program name with args.
 set dummy msgfmt; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGFMT+set}" = set; then
+if test "${ac_cv_path_MSGFMT+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case "$MSGFMT" in
@@ -15795,18 +13361,18 @@ esac
 fi
 MSGFMT="$ac_cv_path_MSGFMT"
 if test "$MSGFMT" != ":"; then
-  { $as_echo "$as_me:$LINENO: result: $MSGFMT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5
 $as_echo "$MSGFMT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
   # Extract the first word of "gmsgfmt", so it can be a program name with args.
 set dummy gmsgfmt; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_GMSGFMT+set}" = set; then
+if test "${ac_cv_path_GMSGFMT+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $GMSGFMT in
@@ -15819,14 +13385,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
@@ -15835,10 +13401,10 @@ esac
 fi
 GMSGFMT=$ac_cv_path_GMSGFMT
 if test -n "$GMSGFMT"; then
-  { $as_echo "$as_me:$LINENO: result: $GMSGFMT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5
 $as_echo "$GMSGFMT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -15886,9 +13452,9 @@ rm -f conf$$.file
 
 # Extract the first word of "xgettext", so it can be a program name with args.
 set dummy xgettext; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_XGETTEXT+set}" = set; then
+if test "${ac_cv_path_XGETTEXT+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case "$XGETTEXT" in
@@ -15918,10 +13484,10 @@ esac
 fi
 XGETTEXT="$ac_cv_path_XGETTEXT"
 if test "$XGETTEXT" != ":"; then
-  { $as_echo "$as_me:$LINENO: result: $XGETTEXT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5
 $as_echo "$XGETTEXT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -15964,9 +13530,9 @@ rm -f conf$$.file
 
 # Extract the first word of "msgmerge", so it can be a program name with args.
 set dummy msgmerge; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_MSGMERGE+set}" = set; then
+if test "${ac_cv_path_MSGMERGE+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case "$MSGMERGE" in
@@ -15995,10 +13561,10 @@ esac
 fi
 MSGMERGE="$ac_cv_path_MSGMERGE"
 if test "$MSGMERGE" != ":"; then
-  { $as_echo "$as_me:$LINENO: result: $MSGMERGE" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5
 $as_echo "$MSGMERGE" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -16016,9 +13582,9 @@ fi
 if test "x$USE_NLS" = "xyes"; then
    # Extract the first word of "msgfmt", so it can be a program name with args.
 set dummy msgfmt; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_HAVE_MSGFMT+set}" = set; then
+if test "${ac_cv_prog_HAVE_MSGFMT+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$HAVE_MSGFMT"; then
@@ -16029,14 +13595,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_HAVE_MSGFMT="yes"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   test -z "$ac_cv_prog_HAVE_MSGFMT" && ac_cv_prog_HAVE_MSGFMT="no"
@@ -16044,25 +13610,23 @@ fi
 fi
 HAVE_MSGFMT=$ac_cv_prog_HAVE_MSGFMT
 if test -n "$HAVE_MSGFMT"; then
-  { $as_echo "$as_me:$LINENO: result: $HAVE_MSGFMT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_MSGFMT" >&5
 $as_echo "$HAVE_MSGFMT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
 
    if test "x$HAVE_MSGFMT" = "xno"; then
-	  { { $as_echo "$as_me:$LINENO: error: msgfmt not found. You need to install the 'gettext' package, or pass --enable-nls=no to configure." >&5
-$as_echo "$as_me: error: msgfmt not found. You need to install the 'gettext' package, or pass --enable-nls=no to configure." >&2;}
-   { (exit 1); exit 1; }; }
+	  as_fn_error "msgfmt not found. You need to install the 'gettext' package, or pass --enable-nls=no to configure." "$LINENO" 5
    fi
 fi
 
 
 # Check whether --with-libgdiplus was given.
-if test "${with_libgdiplus+set}" = set; then
+if test "${with_libgdiplus+set}" = set; then :
   withval=$with_libgdiplus;
 else
   with_libgdiplus=installed
@@ -16079,9 +13643,9 @@ esac
 
 # Extract the first word of "pkg-config", so it can be a program name with args.
 set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
+if test "${ac_cv_path_PKG_CONFIG+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $PKG_CONFIG in
@@ -16094,14 +13658,14 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
@@ -16110,24 +13674,22 @@ esac
 fi
 PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 if test -n "$PKG_CONFIG"; then
-  { $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
 $as_echo "$PKG_CONFIG" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
 if test "x$PKG_CONFIG" = "xno"; then
-	{ { $as_echo "$as_me:$LINENO: error: You need to install pkg-config" >&5
-$as_echo "$as_me: error: You need to install pkg-config" >&2;}
-   { (exit 1); exit 1; }; }
+	as_fn_error "You need to install pkg-config" "$LINENO" 5
 fi
 
 pkg_config_path=
 
 # Check whether --with-crosspkgdir was given.
-if test "${with_crosspkgdir+set}" = set; then
+if test "${with_crosspkgdir+set}" = set; then :
   withval=$with_crosspkgdir; if test x$with_crosspkgdir = "x"; then
 		if test -s $PKG_CONFIG_PATH; then
 			pkg_config_path=$PKG_CONFIG_PATH
@@ -16143,7 +13705,7 @@ fi
 
 
 # Check whether --with-glib was given.
-if test "${with_glib+set}" = set; then
+if test "${with_glib+set}" = set; then :
   withval=$with_glib;
 else
   with_glib=system
@@ -16187,15 +13749,11 @@ system)
     GMODULE_CFLAGS=`$PKG_CONFIG --cflags gmodule-2.0`
     GMODULE_LIBS=`$PKG_CONFIG --libs gmodule-2.0`
   else
-    { { $as_echo "$as_me:$LINENO: error: You need at least glib-2.0 $GLIB_REQUIRED_VERSION" >&5
-$as_echo "$as_me: error: You need at least glib-2.0 $GLIB_REQUIRED_VERSION" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "You need at least glib-2.0 $GLIB_REQUIRED_VERSION" "$LINENO" 5
   fi
   ;;
 *)
-  { { $as_echo "$as_me:$LINENO: error: Invalid argument to --with-glib." >&5
-$as_echo "$as_me: error: Invalid argument to --with-glib." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "Invalid argument to --with-glib." "$LINENO" 5
 esac
  if test x$with_glib = xembedded; then
   EGLIB_BUILD_TRUE=
@@ -16215,39 +13773,35 @@ fi
 
 
 if test x$cross_compiling$platform_win32 = xnoyes; then
-   { $as_echo "$as_me:$LINENO: checking for cygwin glib2-dev package" >&5
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cygwin glib2-dev package" >&5
 $as_echo_n "checking for cygwin glib2-dev package... " >&6; }
    if  cygcheck --f /usr/lib/libglib-2.0.dll.a | grep -q glib2-devel ; then
-      { $as_echo "$as_me:$LINENO: result: found" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: found" >&5
 $as_echo "found" >&6; }
-	  { { $as_echo "$as_me:$LINENO: error: Mono cannot be built with the cygwin glib2-devel package installed, because that package doesn't work with -mno-cygwin. Please uninstall it then re-run configure." >&5
-$as_echo "$as_me: error: Mono cannot be built with the cygwin glib2-devel package installed, because that package doesn't work with -mno-cygwin. Please uninstall it then re-run configure." >&2;}
-   { (exit 1); exit 1; }; }
+	  as_fn_error "Mono cannot be built with the cygwin glib2-devel package installed, because that package doesn't work with -mno-cygwin. Please uninstall it then re-run configure." "$LINENO" 5
    else
-      { $as_echo "$as_me:$LINENO: result: not found" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
 $as_echo "not found" >&6; }
    fi
 
-   { $as_echo "$as_me:$LINENO: checking for broken gwin32.h" >&5
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken gwin32.h" >&5
 $as_echo_n "checking for broken gwin32.h... " >&6; }
    glib_include=`$PKG_CONFIG --cflags-only-I glib-2.0 | sed -e 's/ -I.*//g' | sed -e 's/-I//g'`
    if test -f $glib_include/glib/gwin32.h; then
 	  if  grep ftruncate $glib_include/glib/gwin32.h | grep -q define ; then
-		 { $as_echo "$as_me:$LINENO: result: failed" >&5
+		 { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
 $as_echo "failed" >&6; }
 		 hashmark='#'
-		 { { $as_echo "$as_me:$LINENO: error: Your version of gwin32.h is broken and will cause compilation errors when building mono. Please fix it by deleting the line: '$hashmark   define ftruncate...' from '$glib_include/glib/gwin32.h' then re-run configure." >&5
-$as_echo "$as_me: error: Your version of gwin32.h is broken and will cause compilation errors when building mono. Please fix it by deleting the line: '$hashmark   define ftruncate...' from '$glib_include/glib/gwin32.h' then re-run configure." >&2;}
-   { (exit 1); exit 1; }; }
+		 as_fn_error "Your version of gwin32.h is broken and will cause compilation errors when building mono. Please fix it by deleting the line: '$hashmark   define ftruncate...' from '$glib_include/glib/gwin32.h' then re-run configure." "$LINENO" 5
 	  fi
    fi
-   { $as_echo "$as_me:$LINENO: result: ok" >&5
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
 $as_echo "ok" >&6; }
 fi
 
 
 # Check whether --with-gc was given.
-if test "${with_gc+set}" = set; then
+if test "${with_gc+set}" = set; then :
   withval=$with_gc; gc=$with_gc
 else
   gc=$gc_default
@@ -16258,7 +13812,7 @@ fi
 # Some systems have broken support, so we allow to disable it.
 
 # Check whether --with-tls was given.
-if test "${with_tls+set}" = set; then
+if test "${with_tls+set}" = set; then :
   withval=$with_tls;
 else
   with_tls=__thread
@@ -16269,7 +13823,7 @@ fi
 # This does not work on some platforms (bug #55253)
 
 # Check whether --with-sigaltstack was given.
-if test "${with_sigaltstack+set}" = set; then
+if test "${with_sigaltstack+set}" = set; then :
   withval=$with_sigaltstack;
 else
   with_sigaltstack=yes
@@ -16278,7 +13832,7 @@ fi
 
 
 # Check whether --with-static_mono was given.
-if test "${with_static_mono+set}" = set; then
+if test "${with_static_mono+set}" = set; then :
   withval=$with_static_mono;
 else
   with_static_mono=yes
@@ -16303,7 +13857,7 @@ else
 fi
 
 # Check whether --enable-mcs-build was given.
-if test "${enable_mcs_build+set}" = set; then
+if test "${enable_mcs_build+set}" = set; then :
   enableval=$enable_mcs_build; try_mcs_build=$enableval
 else
   enable_mcs_build=yes
@@ -16312,7 +13866,7 @@ fi
 
 
 # Check whether --with-xen_opt was given.
-if test "${with_xen_opt+set}" = set; then
+if test "${with_xen_opt+set}" = set; then :
   withval=$with_xen_opt;
 else
   with_xen_opt=yes
@@ -16320,19 +13874,13 @@ fi
 
 if test "x$with_xen_opt" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define MONO_XEN_OPT 1
-_ACEOF
+$as_echo "#define MONO_XEN_OPT 1" >>confdefs.h
 
 	ORIG_CFLAGS=$CFLAGS
 	CFLAGS="$CFLAGS -mno-tls-direct-seg-refs"
-	{ $as_echo "$as_me:$LINENO: checking for -mno-tls-direct-seg-refs option to gcc" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for -mno-tls-direct-seg-refs option to gcc" >&5
 $as_echo_n "checking for -mno-tls-direct-seg-refs option to gcc... " >&6; }
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -16345,46 +13893,25 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
-	   { $as_echo "$as_me:$LINENO: result: yes" >&5
+	   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 	   # Pass it to libgc as well
 	   CFLAGS_FOR_LIBGC="$CFLAGS_FOR_LIBGC -mno-tls-direct-seg-refs"
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-
-	   { $as_echo "$as_me:$LINENO: result: no" >&5
+	   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 	   CFLAGS=$ORIG_CFLAGS
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 
 # Check whether --enable-quiet-build was given.
-if test "${enable_quiet_build+set}" = set; then
+if test "${enable_quiet_build+set}" = set; then :
   enableval=$enable_quiet_build; enable_quiet_build=$enableval
 else
   enable_quiet_build=yes
@@ -16394,11 +13921,11 @@ fi
 DISABLED_FEATURES=none
 
 # Check whether --enable-minimal was given.
-if test "${enable_minimal+set}" = set; then
+if test "${enable_minimal+set}" = set; then :
   enableval=$enable_minimal;
 	for feature in `echo "$enable_minimal" | sed -e "s/,/ /g"`; do
 		eval "mono_feature_disable_$feature='yes'"
-		{ $as_echo "$as_me:$LINENO: Disabled support for feature: $feature" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: Disabled support for feature: $feature" >&5
 $as_echo "$as_me: Disabled support for feature: $feature" >&6;}
 	done
 	DISABLED_FEATURES=$enable_minimal
@@ -16415,17 +13942,13 @@ _ACEOF
 
 if test "x$mono_feature_disable_aot" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define DISABLE_AOT 1
-_ACEOF
+$as_echo "#define DISABLE_AOT 1" >>confdefs.h
 
 fi
 
 if test "x$mono_feature_disable_profiler" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define DISABLE_PROFILER 1
-_ACEOF
+$as_echo "#define DISABLE_PROFILER 1" >>confdefs.h
 
 fi
  if test x$mono_feature_disable_profiler = xyes; then
@@ -16439,98 +13962,74 @@ fi
 
 if test "x$mono_feature_disable_decimal" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define DISABLE_DECIMAL 1
-_ACEOF
+$as_echo "#define DISABLE_DECIMAL 1" >>confdefs.h
 
 fi
 
 if test "x$mono_feature_disable_pinvoke" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define DISABLE_PINVOKE 1
-_ACEOF
+$as_echo "#define DISABLE_PINVOKE 1" >>confdefs.h
 
 fi
 
 if test "x$mono_feature_disable_debug" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define DISABLE_DEBUG 1
-_ACEOF
+$as_echo "#define DISABLE_DEBUG 1" >>confdefs.h
 
 fi
 
 if test "x$mono_feature_disable_reflection_emit" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define DISABLE_REFLECTION_EMIT 1
-_ACEOF
+$as_echo "#define DISABLE_REFLECTION_EMIT 1" >>confdefs.h
 
 	mono_feature_disable_reflection_emit_save=yes
 fi
 
 if test "x$mono_feature_disable_reflection_emit_save" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define DISABLE_REFLECTION_EMIT_SAVE 1
-_ACEOF
+$as_echo "#define DISABLE_REFLECTION_EMIT_SAVE 1" >>confdefs.h
 
 fi
 
 if test "x$mono_feature_disable_large_code" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define DISABLE_LARGE_CODE 1
-_ACEOF
+$as_echo "#define DISABLE_LARGE_CODE 1" >>confdefs.h
 
 fi
 
 if test "x$mono_feature_disable_logging" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define DISABLE_LOGGING 1
-_ACEOF
+$as_echo "#define DISABLE_LOGGING 1" >>confdefs.h
 
 fi
 
 if test "x$mono_feature_disable_com" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define DISABLE_COM 1
-_ACEOF
+$as_echo "#define DISABLE_COM 1" >>confdefs.h
 
 fi
 
 if test "x$mono_feature_disable_ssa" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define DISABLE_SSA 1
-_ACEOF
+$as_echo "#define DISABLE_SSA 1" >>confdefs.h
 
 fi
 
 if test "x$mono_feature_disable_generics" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define DISABLE_GENERICS 1
-_ACEOF
+$as_echo "#define DISABLE_GENERICS 1" >>confdefs.h
 
 fi
 
 if test "x$mono_feature_disable_attach" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define DISABLE_ATTACH 1
-_ACEOF
+$as_echo "#define DISABLE_ATTACH 1" >>confdefs.h
 
 fi
 
 if test "x$mono_feature_disable_jit" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define DISABLE_JIT 1
-_ACEOF
+$as_echo "#define DISABLE_JIT 1" >>confdefs.h
 
 fi
 
@@ -16545,19 +14044,13 @@ fi
 
 if test "x$mono_feature_disable_simd" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define DISABLE_SIMD 1
-_ACEOF
+$as_echo "#define DISABLE_SIMD 1" >>confdefs.h
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for visibility __attribute__" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for visibility __attribute__" >&5
 $as_echo_n "checking for visibility __attribute__... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -16571,44 +14064,23 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
    have_visibility_hidden=yes
-   { $as_echo "$as_me:$LINENO: result: yes" >&5
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
 
    have_visibility_hidden=no
-   { $as_echo "$as_me:$LINENO: result: no" >&5
+   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 # Check whether --enable-parallel-mark was given.
-if test "${enable_parallel_mark+set}" = set; then
+if test "${enable_parallel_mark+set}" = set; then :
   enableval=$enable_parallel_mark;
 fi
 
@@ -16622,145 +14094,12 @@ LIBGC_STATIC_LIBS=
 libgc_dir=
 case "x$gc" in
 	xboehm|xbohem|xyes)
-
-
-for ac_header in gc.h gc/gc.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+		for ac_header in gc.h gc/gc.h
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default"
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -16769,18 +14108,14 @@ fi
 
 done
 
-		{ $as_echo "$as_me:$LINENO: checking for GC_malloc in -lgc" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GC_malloc in -lgc" >&5
 $as_echo_n "checking for GC_malloc in -lgc... " >&6; }
-if test "${ac_cv_lib_gc_GC_malloc+set}" = set; then
+if test "${ac_cv_lib_gc_GC_malloc+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lgc $libdl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -16798,80 +14133,45 @@ return GC_malloc ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_gc_GC_malloc=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_gc_GC_malloc=no
+  ac_cv_lib_gc_GC_malloc=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_gc_GC_malloc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gc_GC_malloc" >&5
 $as_echo "$ac_cv_lib_gc_GC_malloc" >&6; }
-if test "x$ac_cv_lib_gc_GC_malloc" = x""yes; then
+if test "x$ac_cv_lib_gc_GC_malloc" = x""yes; then :
   found_boehm="yes"
 fi
 
 
 		if test "x$found_boehm" != "xyes"; then
-			{ { $as_echo "$as_me:$LINENO: error: \"GC requested but libgc not found! Install libgc or run configure with --with-gc=none.\"" >&5
-$as_echo "$as_me: error: \"GC requested but libgc not found! Install libgc or run configure with --with-gc=none.\"" >&2;}
-   { (exit 1); exit 1; }; }
+			as_fn_error "\"GC requested but libgc not found! Install libgc or run configure with --with-gc=none.\"" "$LINENO" 5
 		fi
 		if test "x$gc_headers" != "xyes"; then
-			{ { $as_echo "$as_me:$LINENO: error: \"GC requested but header files not found! You may need to install them by hand.\"" >&5
-$as_echo "$as_me: error: \"GC requested but header files not found! You may need to install them by hand.\"" >&2;}
-   { (exit 1); exit 1; }; }
+			as_fn_error "\"GC requested but header files not found! You may need to install them by hand.\"" "$LINENO" 5
 		fi
 
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_BOEHM_GC 1
-_ACEOF
+$as_echo "#define HAVE_BOEHM_GC 1" >>confdefs.h
 
 
 		LIBGC_LIBS="-lgc $libdl"
 		LIBGC_STATIC_LIBS="$LIBGC_LIBS"
 
 		# AC_CHECK_FUNCS does not work for some reason...
-		{ $as_echo "$as_me:$LINENO: checking for GC_gcj_malloc in -lgc" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GC_gcj_malloc in -lgc" >&5
 $as_echo_n "checking for GC_gcj_malloc in -lgc... " >&6; }
-if test "${ac_cv_lib_gc_GC_gcj_malloc+set}" = set; then
+if test "${ac_cv_lib_gc_GC_gcj_malloc+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lgc $libdl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -16889,51 +14189,24 @@ return GC_gcj_malloc ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_gc_GC_gcj_malloc=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_gc_GC_gcj_malloc=no
+  ac_cv_lib_gc_GC_gcj_malloc=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_gc_GC_gcj_malloc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gc_GC_gcj_malloc" >&5
 $as_echo "$ac_cv_lib_gc_GC_gcj_malloc" >&6; }
-if test "x$ac_cv_lib_gc_GC_gcj_malloc" = x""yes; then
+if test "x$ac_cv_lib_gc_GC_gcj_malloc" = x""yes; then :
   found_gcj_malloc="yes"
 fi
 
 		if test "x$found_gcj_malloc" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GC_GCJ_MALLOC 1
-_ACEOF
+$as_echo "#define HAVE_GC_GCJ_MALLOC 1" >>confdefs.h
 
 
 cat >>confdefs.h <<_ACEOF
@@ -16947,18 +14220,14 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 		fi
-		{ $as_echo "$as_me:$LINENO: checking for GC_enable in -lgc" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GC_enable in -lgc" >&5
 $as_echo_n "checking for GC_enable in -lgc... " >&6; }
-if test "${ac_cv_lib_gc_GC_enable+set}" = set; then
+if test "${ac_cv_lib_gc_GC_enable+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lgc $libdl $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -16976,51 +14245,24 @@ return GC_enable ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_gc_GC_enable=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_gc_GC_enable=no
+  ac_cv_lib_gc_GC_enable=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_gc_GC_enable" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gc_GC_enable" >&5
 $as_echo "$ac_cv_lib_gc_GC_enable" >&6; }
-if test "x$ac_cv_lib_gc_GC_enable" = x""yes; then
+if test "x$ac_cv_lib_gc_GC_enable" = x""yes; then :
   found_gc_enable="yes"
 fi
 
 		if test "x$found_gc_enable" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GC_ENABLE 1
-_ACEOF
+$as_echo "#define HAVE_GC_ENABLE 1" >>confdefs.h
 
 		fi
 		;;
@@ -17036,33 +14278,23 @@ _ACEOF
 		LIBGC_STATIC_LIBS='$(top_builddir)/libgc/libmonogc-static.la'
 
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_BOEHM_GC 1
-_ACEOF
+$as_echo "#define HAVE_BOEHM_GC 1" >>confdefs.h
 
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GC_H 1
-_ACEOF
+$as_echo "#define HAVE_GC_H 1" >>confdefs.h
 
 
-cat >>confdefs.h <<\_ACEOF
-#define USE_INCLUDED_LIBGC 1
-_ACEOF
+$as_echo "#define USE_INCLUDED_LIBGC 1" >>confdefs.h
 
 
 		# The included libgc contains GCJ support
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GC_GCJ_MALLOC 1
-_ACEOF
+$as_echo "#define HAVE_GC_GCJ_MALLOC 1" >>confdefs.h
 
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GC_ENABLE 1
-_ACEOF
+$as_echo "#define HAVE_GC_ENABLE 1" >>confdefs.h
 
 		if test x$enable_parallel_mark = xyes; then
 
@@ -17084,19 +14316,13 @@ _ACEOF
 		gc_headers=no
 		use_included_gc=no
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SGEN_GC 1
-_ACEOF
+$as_echo "#define HAVE_SGEN_GC 1" >>confdefs.h
 
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MOVING_COLLECTOR 1
-_ACEOF
+$as_echo "#define HAVE_MOVING_COLLECTOR 1" >>confdefs.h
 
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_WRITE_BARRIERS 1
-_ACEOF
+$as_echo "#define HAVE_WRITE_BARRIERS 1" >>confdefs.h
 
 
 cat >>confdefs.h <<_ACEOF
@@ -17106,7 +14332,7 @@ _ACEOF
 		;;
 
 	xnone)
-		{ $as_echo "$as_me:$LINENO: WARNING: \"Compiling mono without GC.\"" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"Compiling mono without GC.\"" >&5
 $as_echo "$as_me: WARNING: \"Compiling mono without GC.\"" >&2;}
 
 cat >>confdefs.h <<_ACEOF
@@ -17114,21 +14340,17 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_NULL_GC 1
-_ACEOF
+$as_echo "#define HAVE_NULL_GC 1" >>confdefs.h
 
 		;;
 	*)
-		{ { $as_echo "$as_me:$LINENO: error: Invalid argument to --with-gc." >&5
-$as_echo "$as_me: error: Invalid argument to --with-gc." >&2;}
-   { (exit 1); exit 1; }; }
+		as_fn_error "Invalid argument to --with-gc." "$LINENO" 5
 		;;
 esac
 
 
 # Check whether --with-large-heap was given.
-if test "${with_large_heap+set}" = set; then
+if test "${with_large_heap+set}" = set; then :
   withval=$with_large_heap; large_heap=$withval
 else
   large_heap=no
@@ -17155,17 +14377,13 @@ fi
 
 if test x$platform_win32 = xno; then
 
-		{ $as_echo "$as_me:$LINENO: checking for library containing clock_gettime" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing clock_gettime" >&5
 $as_echo_n "checking for library containing clock_gettime... " >&6; }
-if test "${ac_cv_search_clock_gettime+set}" = set; then
+if test "${ac_cv_search_clock_gettime+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -17190,159 +14408,44 @@ for ac_lib in '' rt; do
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_clock_gettime=$ac_res
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_clock_gettime+set}" = set; then
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if test "${ac_cv_search_clock_gettime+set}" = set; then :
   break
 fi
 done
-if test "${ac_cv_search_clock_gettime+set}" = set; then
-  :
+if test "${ac_cv_search_clock_gettime+set}" = set; then :
+
 else
   ac_cv_search_clock_gettime=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_clock_gettime" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_clock_gettime" >&5
 $as_echo "$ac_cv_search_clock_gettime" >&6; }
 ac_res=$ac_cv_search_clock_gettime
-if test "$ac_res" != no; then
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 
 
-		{ $as_echo "$as_me:$LINENO: checking for dlopen" >&5
-$as_echo_n "checking for dlopen... " >&6; }
-if test "${ac_cv_func_dlopen+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define dlopen innocuous_dlopen
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlopen (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef dlopen
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_dlopen || defined __stub___dlopen
-choke me
-#endif
-
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_dlopen=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func_dlopen=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-$as_echo "$ac_cv_func_dlopen" >&6; }
-if test "x$ac_cv_func_dlopen" = x""yes; then
+		ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = x""yes; then :
   DL_LIB=""
 else
-  { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -17360,43 +14463,18 @@ return dlopen ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dl_dlopen=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_dl_dlopen=no
+  ac_cv_lib_dl_dlopen=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
   DL_LIB="-ldl"
 else
   dl_support=no
@@ -17406,35 +14484,26 @@ fi
 fi
 
 	if test x$dl_support = xno; then
-		{ $as_echo "$as_me:$LINENO: WARNING: No dynamic loading support available" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No dynamic loading support available" >&5
 $as_echo "$as_me: WARNING: No dynamic loading support available" >&2;}
 	else
 		LIBS="$LIBS $DL_LIB"
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_DL_LOADER 1
-_ACEOF
+$as_echo "#define HAVE_DL_LOADER 1" >>confdefs.h
 
-				{ $as_echo "$as_me:$LINENO: checking for preceeding underscore in symbols" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for preceeding underscore in symbols" >&5
 $as_echo_n "checking for preceeding underscore in symbols... " >&6; }
-if test "${mono_cv_uscore+set}" = set; then
+if test "${mono_cv_uscore+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
 
-			if test "$cross_compiling" = yes; then
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+			if test "$cross_compiling" = yes; then :
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error "cannot run test program while cross compiling
+See \`config.log' for more details." "$LINENO" 5; }
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <dlfcn.h>
 			int mono_underscore_test (void) { return 42; }
@@ -17447,45 +14516,18 @@ cat >>conftest.$ac_ext <<_ACEOF
 			  } return (!f2 || f1);
 			}
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   mono_cv_uscore=yes
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-mono_cv_uscore=no
+  mono_cv_uscore=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
 
-
 fi
-{ $as_echo "$as_me:$LINENO: result: $mono_cv_uscore" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mono_cv_uscore" >&5
 $as_echo "$mono_cv_uscore" >&6; }
 		if test "x$mono_cv_uscore" = "xyes"; then
 			MONO_DL_NEED_USCORE=1
@@ -17493,97 +14535,16 @@ $as_echo "$mono_cv_uscore" >&6; }
 			MONO_DL_NEED_USCORE=0
 		fi
 
-		{ $as_echo "$as_me:$LINENO: checking for dlerror" >&5
-$as_echo_n "checking for dlerror... " >&6; }
-if test "${ac_cv_func_dlerror+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define dlerror to an innocuous variant, in case <limits.h> declares dlerror.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define dlerror innocuous_dlerror
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlerror (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef dlerror
+		ac_fn_c_check_func "$LINENO" "dlerror" "ac_cv_func_dlerror"
+if test "x$ac_cv_func_dlerror" = x""yes; then :
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlerror ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_dlerror || defined __stub___dlerror
-choke me
-#endif
-
-int
-main ()
-{
-return dlerror ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_dlerror=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func_dlerror=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_dlerror" >&5
-$as_echo "$ac_cv_func_dlerror" >&6; }
 
 	fi
 
 
 # Check whether --with-ikvm-native was given.
-if test "${with_ikvm_native+set}" = set; then
+if test "${with_ikvm_native+set}" = set; then :
   withval=$with_ikvm_native; with_ikvm_native=$withval
 else
   with_ikvm_native=yes
@@ -17598,146 +14559,12 @@ fi
 
 
 
-
-for ac_header in execinfo.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_header in execinfo.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "execinfo.h" "ac_cv_header_execinfo_h" "$ac_includes_default"
+if test "x$ac_cv_header_execinfo_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_EXECINFO_H 1
 _ACEOF
 
 fi
@@ -17745,1521 +14572,208 @@ fi
 done
 
 
-
-for ac_func in getgrgid_r
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in getgrgid_r
+do :
+  ac_fn_c_check_func "$LINENO" "getgrgid_r" "ac_cv_func_getgrgid_r"
+if test "x$ac_cv_func_getgrgid_r" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_GETGRGID_R 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in getgrnam_r
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in getgrnam_r
+do :
+  ac_fn_c_check_func "$LINENO" "getgrnam_r" "ac_cv_func_getgrnam_r"
+if test "x$ac_cv_func_getgrnam_r" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_GETGRNAM_R 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in getpwnam_r
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in getpwnam_r
+do :
+  ac_fn_c_check_func "$LINENO" "getpwnam_r" "ac_cv_func_getpwnam_r"
+if test "x$ac_cv_func_getpwnam_r" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_GETPWNAM_R 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in getpwuid_r
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in getpwuid_r
+do :
+  ac_fn_c_check_func "$LINENO" "getpwuid_r" "ac_cv_func_getpwuid_r"
+if test "x$ac_cv_func_getpwuid_r" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_GETPWUID_R 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in getresuid
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in getresuid
+do :
+  ac_fn_c_check_func "$LINENO" "getresuid" "ac_cv_func_getresuid"
+if test "x$ac_cv_func_getresuid" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_GETRESUID 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in setresuid
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in setresuid
+do :
+  ac_fn_c_check_func "$LINENO" "setresuid" "ac_cv_func_setresuid"
+if test "x$ac_cv_func_setresuid" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_SETRESUID 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in kqueue
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in kqueue
+do :
+  ac_fn_c_check_func "$LINENO" "kqueue" "ac_cv_func_kqueue"
+if test "x$ac_cv_func_kqueue" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_KQUEUE 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in backtrace_symbols
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in backtrace_symbols
+do :
+  ac_fn_c_check_func "$LINENO" "backtrace_symbols" "ac_cv_func_backtrace_symbols"
+if test "x$ac_cv_func_backtrace_symbols" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_BACKTRACE_SYMBOLS 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in mkstemp
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in mkstemp
+do :
+  ac_fn_c_check_func "$LINENO" "mkstemp" "ac_cv_func_mkstemp"
+if test "x$ac_cv_func_mkstemp" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_MKSTEMP 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in mmap
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in mmap
+do :
+  ac_fn_c_check_func "$LINENO" "mmap" "ac_cv_func_mmap"
+if test "x$ac_cv_func_mmap" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_MMAP 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in madvise
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
+	for ac_func in madvise
+do :
+  ac_fn_c_check_func "$LINENO" "madvise" "ac_cv_func_madvise"
+if test "x$ac_cv_func_madvise" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_MADVISE 1
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-	eval "$as_ac_var=no"
 fi
+done
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in getrusage
+do :
+  ac_fn_c_check_func "$LINENO" "getrusage" "ac_cv_func_getrusage"
+if test "x$ac_cv_func_getrusage" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_GETRUSAGE 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in getrusage
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
+	for ac_func in getpriority
+do :
+  ac_fn_c_check_func "$LINENO" "getpriority" "ac_cv_func_getpriority"
+if test "x$ac_cv_func_getpriority" = x""yes; then :
+  cat >>confdefs.h <<_ACEOF
+#define HAVE_GETPRIORITY 1
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-	eval "$as_ac_var=no"
 fi
+done
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in setpriority
+do :
+  ac_fn_c_check_func "$LINENO" "setpriority" "ac_cv_func_setpriority"
+if test "x$ac_cv_func_setpriority" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_SETPRIORITY 1
 _ACEOF
 
 fi
 done
 
 
-for ac_func in getpriority
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in sched_setaffinity
+do :
+  ac_fn_c_check_func "$LINENO" "sched_setaffinity" "ac_cv_func_sched_setaffinity"
+if test "x$ac_cv_func_sched_setaffinity" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_SCHED_SETAFFINITY 1
 _ACEOF
 
 fi
 done
 
 
-for ac_func in setpriority
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+										{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sched_setaffinity from glibc < 2.3.4" >&5
+$as_echo_n "checking for sched_setaffinity from glibc < 2.3.4... " >&6; }
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
+#include <sched.h>
 int
 main ()
 {
-return $ac_func ();
+
+		int main() {
+            int mask = 1;
+            sched_setaffinity(0, &mask);
+        }
+
   ;
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_compile "$LINENO"; then :
 
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-done
-
-
-
-for ac_func in sched_setaffinity
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
+		# Yes, we have it...
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+$as_echo "yes" >&6; }
 
-#undef $ac_func
+$as_echo "#define GLIBC_BEFORE_2_3_4_SCHED_SETAFFINITY 1" >>confdefs.h
 
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
 
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
-_ACEOF
+		# We have the new, three-parameter version
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
 
 fi
-done
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 
 
@@ -19269,19 +14783,15 @@ done
 	large_offt=no
 
 
-	{ $as_echo "$as_me:$LINENO: checking if off_t is 64 bits wide" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if off_t is 64 bits wide" >&5
 $as_echo_n "checking if off_t is 64 bits wide... " >&6; }
 
 		large_CPPFLAGS=$CPPFLAGS
 		CPPFLAGS="$CPPFLAGS """
-		if test "$cross_compiling" = yes; then
+		if test "$cross_compiling" = yes; then :
   ""
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 			#include <sys/types.h>
@@ -19299,71 +14809,38 @@ cat >>conftest.$ac_ext <<_ACEOF
 			}
 
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
 
-			{ $as_echo "$as_me:$LINENO: result: ok" >&5
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
 $as_echo "ok" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LARGE_FILE_SUPPORT 1
-_ACEOF
+$as_echo "#define HAVE_LARGE_FILE_SUPPORT 1" >>confdefs.h
 
 			large_CPPFLAGS="$large_CPPFLAGS """
 			large_offt=yes
 
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
 
-			{ $as_echo "$as_me:$LINENO: result: no" >&5
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 		CPPFLAGS=$large_CPPFLAGS
 
 	if test $large_offt = no; then
-		{ $as_echo "$as_me:$LINENO: checking if _FILE_OFFSET_BITS=64 gives 64 bit off_t" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if _FILE_OFFSET_BITS=64 gives 64 bit off_t" >&5
 $as_echo_n "checking if _FILE_OFFSET_BITS=64 gives 64 bit off_t... " >&6; }
 
 		large_CPPFLAGS=$CPPFLAGS
 		CPPFLAGS="$CPPFLAGS "-D_FILE_OFFSET_BITS=64""
-		if test "$cross_compiling" = yes; then
+		if test "$cross_compiling" = yes; then :
   ""
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 			#include <sys/types.h>
@@ -19381,75 +14858,42 @@ cat >>conftest.$ac_ext <<_ACEOF
 			}
 
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
 
-			{ $as_echo "$as_me:$LINENO: result: ok" >&5
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
 $as_echo "ok" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_LARGE_FILE_SUPPORT 1
-_ACEOF
+$as_echo "#define HAVE_LARGE_FILE_SUPPORT 1" >>confdefs.h
 
 			large_CPPFLAGS="$large_CPPFLAGS "-D_FILE_OFFSET_BITS=64""
 			large_offt=yes
 
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-
-			{ $as_echo "$as_me:$LINENO: result: no" >&5
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 		CPPFLAGS=$large_CPPFLAGS
 
 	fi
 	if test $large_offt = no; then
-		{ $as_echo "$as_me:$LINENO: WARNING: No 64 bit file size support available" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No 64 bit file size support available" >&5
 $as_echo "$as_me: WARNING: No 64 bit file size support available" >&2;}
 	fi
 
-				{ $as_echo "$as_me:$LINENO: checking for socket in -lsocket" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5
 $as_echo_n "checking for socket in -lsocket... " >&6; }
-if test "${ac_cv_lib_socket_socket+set}" = set; then
+if test "${ac_cv_lib_socket_socket+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lsocket  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -19467,54 +14911,25 @@ return socket ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_socket_socket=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_socket_socket=no
+  ac_cv_lib_socket_socket=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5
 $as_echo "$ac_cv_lib_socket_socket" >&6; }
-if test "x$ac_cv_lib_socket_socket" = x""yes; then
+if test "x$ac_cv_lib_socket_socket" = x""yes; then :
   LIBS="$LIBS -lsocket"
 fi
 
 
-				{ $as_echo "$as_me:$LINENO: checking for MSG_NOSIGNAL" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MSG_NOSIGNAL" >&5
 $as_echo_n "checking for MSG_NOSIGNAL... " >&6; }
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/socket.h>
 int
@@ -19527,54 +14942,27 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
 		# Yes, we have it...
-		{ $as_echo "$as_me:$LINENO: result: yes" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_MSG_NOSIGNAL 1
-_ACEOF
+$as_echo "#define HAVE_MSG_NOSIGNAL 1" >>confdefs.h
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
 
 		# We'll have to use signals
-		{ $as_echo "$as_me:$LINENO: result: no" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-				{ $as_echo "$as_me:$LINENO: checking for SOL_IP" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_IP" >&5
 $as_echo_n "checking for SOL_IP... " >&6; }
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <netdb.h>
 int
@@ -19587,54 +14975,27 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
 		# Yes, we have it...
-		{ $as_echo "$as_me:$LINENO: result: yes" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SOL_IP 1
-_ACEOF
+$as_echo "#define HAVE_SOL_IP 1" >>confdefs.h
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
 
 		# We'll have to use getprotobyname
-		{ $as_echo "$as_me:$LINENO: result: no" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-				{ $as_echo "$as_me:$LINENO: checking for SOL_IPV6" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_IPV6" >&5
 $as_echo_n "checking for SOL_IPV6... " >&6; }
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <netdb.h>
 int
@@ -19647,54 +15008,27 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
 		# Yes, we have it...
-		{ $as_echo "$as_me:$LINENO: result: yes" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SOL_IPV6 1
-_ACEOF
+$as_echo "#define HAVE_SOL_IPV6 1" >>confdefs.h
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
 
 		# We'll have to use getprotobyname
-		{ $as_echo "$as_me:$LINENO: result: no" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-				{ $as_echo "$as_me:$LINENO: checking for SOL_TCP" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOL_TCP" >&5
 $as_echo_n "checking for SOL_TCP... " >&6; }
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <netdb.h>
 int
@@ -19707,54 +15041,27 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
 		# Yes, we have it...
-		{ $as_echo "$as_me:$LINENO: result: yes" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SOL_TCP 1
-_ACEOF
+$as_echo "#define HAVE_SOL_TCP 1" >>confdefs.h
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
 
 		# We'll have to use getprotobyname
-		{ $as_echo "$as_me:$LINENO: result: no" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-				{ $as_echo "$as_me:$LINENO: checking for IP_PKTINFO" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for IP_PKTINFO" >&5
 $as_echo_n "checking for IP_PKTINFO... " >&6; }
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <netdb.h>
 int
@@ -19767,53 +15074,26 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
 		# Yes, we have it...
-		{ $as_echo "$as_me:$LINENO: result: yes" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_IP_PKTINFO 1
-_ACEOF
+$as_echo "#define HAVE_IP_PKTINFO 1" >>confdefs.h
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-
-		{ $as_echo "$as_me:$LINENO: result: no" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-				{ $as_echo "$as_me:$LINENO: checking for IPV6_PKTINFO" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for IPV6_PKTINFO" >&5
 $as_echo_n "checking for IPV6_PKTINFO... " >&6; }
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <netdb.h>
 int
@@ -19826,53 +15106,26 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
 		# Yes, we have it...
-		{ $as_echo "$as_me:$LINENO: result: yes" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_IPV6_PKTINFO 1
-_ACEOF
+$as_echo "#define HAVE_IPV6_PKTINFO 1" >>confdefs.h
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
 
-		{ $as_echo "$as_me:$LINENO: result: no" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-				{ $as_echo "$as_me:$LINENO: checking for IP_DONTFRAGMENT" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for IP_DONTFRAGMENT" >&5
 $as_echo_n "checking for IP_DONTFRAGMENT... " >&6; }
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <netdb.h>
 int
@@ -19885,53 +15138,26 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
 		# Yes, we have it...
-		{ $as_echo "$as_me:$LINENO: result: yes" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_IP_DONTFRAGMENT 1
-_ACEOF
+$as_echo "#define HAVE_IP_DONTFRAGMENT 1" >>confdefs.h
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
 
-		{ $as_echo "$as_me:$LINENO: result: no" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-				{ $as_echo "$as_me:$LINENO: checking for IP_MTU_DISCOVER" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for IP_MTU_DISCOVER" >&5
 $as_echo_n "checking for IP_MTU_DISCOVER... " >&6; }
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <netdb.h>
 int
@@ -19944,53 +15170,26 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
 		# Yes, we have it...
-		{ $as_echo "$as_me:$LINENO: result: yes" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_IP_MTU_DISCOVER 1
-_ACEOF
+$as_echo "#define HAVE_IP_MTU_DISCOVER 1" >>confdefs.h
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
 
-		{ $as_echo "$as_me:$LINENO: result: no" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
- 				{ $as_echo "$as_me:$LINENO: checking for struct ip_mreqn" >&5
+ 				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct ip_mreqn" >&5
 $as_echo_n "checking for struct ip_mreqn... " >&6; }
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <netinet/in.h>
 int
@@ -20004,49 +15203,23 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
 		# Yes, we have it...
-		{ $as_echo "$as_me:$LINENO: result: yes" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STRUCT_IP_MREQN 1
-_ACEOF
+$as_echo "#define HAVE_STRUCT_IP_MREQN 1" >>confdefs.h
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
 
 		# We'll just have to try and use struct ip_mreq
-		{ $as_echo "$as_me:$LINENO: result: no" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-		{ $as_echo "$as_me:$LINENO: checking for struct ip_mreq" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct ip_mreq" >&5
 $as_echo_n "checking for struct ip_mreq... " >&6; }
-		cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+		cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <netinet/in.h>
 int
@@ -20060,58 +15233,30 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
 			# Yes, we have it...
-			{ $as_echo "$as_me:$LINENO: result: yes" >&5
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STRUCT_IP_MREQ 1
-_ACEOF
+$as_echo "#define HAVE_STRUCT_IP_MREQ 1" >>confdefs.h
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
 
 			# No multicast support
-			{ $as_echo "$as_me:$LINENO: result: no" >&5
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-				{ $as_echo "$as_me:$LINENO: checking for gethostbyname2_r" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname2_r" >&5
 $as_echo_n "checking for gethostbyname2_r... " >&6; }
-		cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+		cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <netdb.h>
 int
@@ -20124,151 +15269,36 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
 
 		# Yes, we have it...
-		{ $as_echo "$as_me:$LINENO: result: yes" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GETHOSTBYNAME2_R 1
-_ACEOF
+$as_echo "#define HAVE_GETHOSTBYNAME2_R 1" >>confdefs.h
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-
-		{ $as_echo "$as_me:$LINENO: result: no" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-
-				{ $as_echo "$as_me:$LINENO: checking for gethostbyaddr" >&5
-$as_echo_n "checking for gethostbyaddr... " >&6; }
-if test "${ac_cv_func_gethostbyaddr+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define gethostbyaddr to an innocuous variant, in case <limits.h> declares gethostbyaddr.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define gethostbyaddr innocuous_gethostbyaddr
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char gethostbyaddr (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef gethostbyaddr
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char gethostbyaddr ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_gethostbyaddr || defined __stub___gethostbyaddr
-choke me
-#endif
+				ac_fn_c_check_func "$LINENO" "gethostbyaddr" "ac_cv_func_gethostbyaddr"
+if test "x$ac_cv_func_gethostbyaddr" = x""yes; then :
 
-int
-main ()
-{
-return gethostbyaddr ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_gethostbyaddr=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func_gethostbyaddr=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_gethostbyaddr" >&5
-$as_echo "$ac_cv_func_gethostbyaddr" >&6; }
-if test "x$ac_cv_func_gethostbyaddr" = x""yes; then
-  :
-else
-  { $as_echo "$as_me:$LINENO: checking for gethostbyaddr in -lnsl" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyaddr in -lnsl" >&5
 $as_echo_n "checking for gethostbyaddr in -lnsl... " >&6; }
-if test "${ac_cv_lib_nsl_gethostbyaddr+set}" = set; then
+if test "${ac_cv_lib_nsl_gethostbyaddr+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lnsl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -20286,144 +15316,30 @@ return gethostbyaddr ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_nsl_gethostbyaddr=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_nsl_gethostbyaddr=no
+  ac_cv_lib_nsl_gethostbyaddr=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_gethostbyaddr" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyaddr" >&5
 $as_echo "$ac_cv_lib_nsl_gethostbyaddr" >&6; }
-if test "x$ac_cv_lib_nsl_gethostbyaddr" = x""yes; then
+if test "x$ac_cv_lib_nsl_gethostbyaddr" = x""yes; then :
   LIBS="$LIBS -lnsl"
 fi
 
 fi
 
 
-
-
-for ac_func in inet_pton inet_aton
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in inet_pton inet_aton
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+eval as_val=\$$as_ac_var
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -20433,19 +15349,15 @@ done
 
 
 				# AC_CHECK_SIZEOF can't cope with struct members :-(
-	{ $as_echo "$as_me:$LINENO: checking size of sockaddr_un.sun_path" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of sockaddr_un.sun_path" >&5
 $as_echo_n "checking size of sockaddr_un.sun_path... " >&6; }
-	if test "${mono_cv_sizeof_sunpath+set}" = set; then
+	if test "${mono_cv_sizeof_sunpath+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
+  if test "$cross_compiling" = yes; then :
   mono_cv_sizeof_sunpath=0
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 			#include <sys/types.h>
@@ -20461,44 +15373,17 @@ cat >>conftest.$ac_ext <<_ACEOF
 			}
 
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
   mono_cv_sizeof_sunpath=`cat conftestval`
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-mono_cv_sizeof_sunpath=0
+  mono_cv_sizeof_sunpath=0
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 fi
-	{ $as_echo "$as_me:$LINENO: result: $mono_cv_sizeof_sunpath" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mono_cv_sizeof_sunpath" >&5
 $as_echo "$mono_cv_sizeof_sunpath" >&6; }
 
 cat >>confdefs.h <<_ACEOF
@@ -20506,13 +15391,9 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
-				{ $as_echo "$as_me:$LINENO: checking whether $CC supports zero length arrays" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC supports zero length arrays" >&5
 $as_echo_n "checking whether $CC supports zero length arrays... " >&6; }
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
                 struct s {
@@ -20528,26 +15409,9 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
-		{ $as_echo "$as_me:$LINENO: result: yes" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
 cat >>confdefs.h <<_ACEOF
@@ -20556,11 +15420,8 @@ _ACEOF
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
 
-		{ $as_echo "$as_me:$LINENO: result: no" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 cat >>confdefs.h <<_ACEOF
@@ -20569,22 +15430,21 @@ _ACEOF
 
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 				case "${host}" in
 		*solaris* )
-			{ $as_echo "$as_me:$LINENO: checking for Solaris XPG4 support" >&5
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Solaris XPG4 support" >&5
 $as_echo_n "checking for Solaris XPG4 support... " >&6; }
 			if test -f /usr/lib/libxnet.so; then
 				CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE=500"
 	    			CPPFLAGS="$CPPFLAGS -D__EXTENSIONS__"
 				CPPFLAGS="$CPPFLAGS -D_XOPEN_SOURCE_EXTENDED=1"
            			LIBS="$LIBS -lxnet"
-  	    			{ $as_echo "$as_me:$LINENO: result: yes" >&5
+  	    			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 			else
-  	    			{ $as_echo "$as_me:$LINENO: result: no" >&5
+  	    			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 			fi
 
@@ -20599,18 +15459,14 @@ $as_echo "no" >&6; }
 #
 	case "${host}" in
 		*-*-*freebsd*)
-			{ $as_echo "$as_me:$LINENO: checking for main in -lpthread" >&5
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lpthread" >&5
 $as_echo_n "checking for main in -lpthread... " >&6; }
-if test "${ac_cv_lib_pthread_main+set}" = set; then
+if test "${ac_cv_lib_pthread_main+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lpthread  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 
@@ -20622,60 +15478,31 @@ return main ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_pthread_main=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_pthread_main=no
+  ac_cv_lib_pthread_main=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_main" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_main" >&5
 $as_echo "$ac_cv_lib_pthread_main" >&6; }
-if test "x$ac_cv_lib_pthread_main" = x""yes; then
+if test "x$ac_cv_lib_pthread_main" = x""yes; then :
   LIBS="$LIBS -pthread"
 fi
 
 		;;
 		*)
-			{ $as_echo "$as_me:$LINENO: checking for main in -lpthread" >&5
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lpthread" >&5
 $as_echo_n "checking for main in -lpthread... " >&6; }
-if test "${ac_cv_lib_pthread_main+set}" = set; then
+if test "${ac_cv_lib_pthread_main+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lpthread  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 
@@ -20687,390 +15514,52 @@ return main ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_pthread_main=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_pthread_main=no
+  ac_cv_lib_pthread_main=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_pthread_main" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_main" >&5
 $as_echo "$ac_cv_lib_pthread_main" >&6; }
-if test "x$ac_cv_lib_pthread_main" = x""yes; then
+if test "x$ac_cv_lib_pthread_main" = x""yes; then :
   LIBS="$LIBS -lpthread"
 fi
 
 		;;
 	esac
-
-for ac_header in pthread.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_header in pthread.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default"
+if test "x$ac_cv_header_pthread_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_PTHREAD_H 1
 _ACEOF
 
 fi
 
 done
 
-
-for ac_func in pthread_mutex_timedlock
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in pthread_mutex_timedlock
+do :
+  ac_fn_c_check_func "$LINENO" "pthread_mutex_timedlock" "ac_cv_func_pthread_mutex_timedlock"
+if test "x$ac_cv_func_pthread_mutex_timedlock" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_PTHREAD_MUTEX_TIMEDLOCK 1
 _ACEOF
 
 fi
 done
 
-
-
-for ac_func in pthread_getattr_np pthread_attr_get_np
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in pthread_getattr_np pthread_attr_get_np
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+eval as_val=\$$as_ac_var
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -21078,13 +15567,9 @@ _ACEOF
 fi
 done
 
-	{ $as_echo "$as_me:$LINENO: checking for PTHREAD_MUTEX_RECURSIVE" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_MUTEX_RECURSIVE" >&5
 $as_echo_n "checking for PTHREAD_MUTEX_RECURSIVE... " >&6; }
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
  #include <pthread.h>
 int
@@ -21098,343 +15583,51 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
-		{ $as_echo "$as_me:$LINENO: result: ok" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
 $as_echo "ok" >&6; }
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
 
-		{ $as_echo "$as_me:$LINENO: result: no" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-		{ $as_echo "$as_me:$LINENO: WARNING: Using mono_mutex_t for recursive mutexes" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Using mono_mutex_t for recursive mutexes" >&5
 $as_echo "$as_me: WARNING: Using mono_mutex_t for recursive mutexes" >&2;}
 
-cat >>confdefs.h <<\_ACEOF
-#define USE_MONO_MUTEX 1
-_ACEOF
+$as_echo "#define USE_MONO_MUTEX 1" >>confdefs.h
 
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-for ac_func in pthread_attr_setstacksize
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in pthread_attr_setstacksize
+do :
+  ac_fn_c_check_func "$LINENO" "pthread_attr_setstacksize" "ac_cv_func_pthread_attr_setstacksize"
+if test "x$ac_cv_func_pthread_attr_setstacksize" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_PTHREAD_ATTR_SETSTACKSIZE 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in pthread_attr_getstack
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in pthread_attr_getstack
+do :
+  ac_fn_c_check_func "$LINENO" "pthread_attr_getstack" "ac_cv_func_pthread_attr_getstack"
+if test "x$ac_cv_func_pthread_attr_getstack" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_PTHREAD_ATTR_GETSTACK 1
 _ACEOF
 
 fi
 done
 
-
-
-for ac_func in pthread_get_stacksize_np pthread_get_stackaddr_np
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in pthread_get_stacksize_np pthread_get_stackaddr_np
+do :
+  as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+eval as_val=\$$as_ac_var
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
 _ACEOF
@@ -21443,26 +15636,19 @@ fi
 done
 
 
-				{ $as_echo "$as_me:$LINENO: checking for working __thread" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working __thread" >&5
 $as_echo_n "checking for working __thread... " >&6; }
 	if test "x$with_tls" != "x__thread"; then
-		{ $as_echo "$as_me:$LINENO: result: disabled" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5
 $as_echo "disabled" >&6; }
 	else
-		if test "$cross_compiling" = yes; then
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+		if test "$cross_compiling" = yes; then :
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error "cannot run test program while cross compiling
+See \`config.log' for more details." "$LINENO" 5; }
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 			#include <pthread.h>
@@ -21494,71 +15680,37 @@ cat >>conftest.$ac_ext <<_ACEOF
 			}
 
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
 
-				{ $as_echo "$as_me:$LINENO: result: yes" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-( exit $ac_status )
-
-				{ $as_echo "$as_me:$LINENO: result: no" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 				with_tls=pthread
 
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 	fi
 
-				{ $as_echo "$as_me:$LINENO: checking for working sigaltstack" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working sigaltstack" >&5
 $as_echo_n "checking for working sigaltstack... " >&6; }
 	if test "x$with_sigaltstack" != "xyes"; then
-		{ $as_echo "$as_me:$LINENO: result: disabled" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5
 $as_echo "disabled" >&6; }
 	else
-		if test "$cross_compiling" = yes; then
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+		if test "$cross_compiling" = yes; then :
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot run test program while cross compiling
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error "cannot run test program while cross compiling
+See \`config.log' for more details." "$LINENO" 5; }
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 			#include <stdio.h>
@@ -21648,70 +15800,37 @@ cat >>conftest.$ac_ext <<_ACEOF
 
 
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+if ac_fn_c_try_run "$LINENO"; then :
 
-				{ $as_echo "$as_me:$LINENO: result: yes" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_WORKING_SIGALTSTACK 1
-_ACEOF
+$as_echo "#define HAVE_WORKING_SIGALTSTACK 1" >>confdefs.h
 
 
 else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
 
 				with_sigaltstack=no
-				{ $as_echo "$as_me:$LINENO: result: no" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 	fi
 
 				# 'Real Time' functions on Solaris
 	# posix4 on Solaris 2.6
 	# pthread (first!) on Linux
-	{ $as_echo "$as_me:$LINENO: checking for library containing sem_init" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing sem_init" >&5
 $as_echo_n "checking for library containing sem_init... " >&6; }
-if test "${ac_cv_search_sem_init+set}" = set; then
+if test "${ac_cv_search_sem_init+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -21736,70 +15855,39 @@ for ac_lib in '' pthread rt posix4; do
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_sem_init=$ac_res
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_sem_init+set}" = set; then
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if test "${ac_cv_search_sem_init+set}" = set; then :
   break
 fi
 done
-if test "${ac_cv_search_sem_init+set}" = set; then
-  :
+if test "${ac_cv_search_sem_init+set}" = set; then :
+
 else
   ac_cv_search_sem_init=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_sem_init" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sem_init" >&5
 $as_echo "$ac_cv_search_sem_init" >&6; }
 ac_res=$ac_cv_search_sem_init
-if test "$ac_res" != no; then
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 
 
-	{ $as_echo "$as_me:$LINENO: checking for library containing shm_open" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing shm_open" >&5
 $as_echo_n "checking for library containing shm_open... " >&6; }
-if test "${ac_cv_search_shm_open+set}" = set; then
+if test "${ac_cv_search_shm_open+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -21824,170 +15912,49 @@ for ac_lib in '' pthread rt posix4; do
     ac_res=-l$ac_lib
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
-  rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+  if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_search_shm_open=$ac_res
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext
-  if test "${ac_cv_search_shm_open+set}" = set; then
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext
+  if test "${ac_cv_search_shm_open+set}" = set; then :
   break
 fi
 done
-if test "${ac_cv_search_shm_open+set}" = set; then
-  :
+if test "${ac_cv_search_shm_open+set}" = set; then :
+
 else
   ac_cv_search_shm_open=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_search_shm_open" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_shm_open" >&5
 $as_echo "$ac_cv_search_shm_open" >&6; }
 ac_res=$ac_cv_search_shm_open
-if test "$ac_res" != no; then
+if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 
-
-for ac_func in shm_open
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in shm_open
+do :
+  ac_fn_c_check_func "$LINENO" "shm_open" "ac_cv_func_shm_open"
+if test "x$ac_cv_func_shm_open" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_SHM_OPEN 1
 _ACEOF
 
 fi
 done
 
 
-				{ $as_echo "$as_me:$LINENO: checking for tm_gmtoff in struct tm" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for tm_gmtoff in struct tm" >&5
 $as_echo_n "checking for tm_gmtoff in struct tm... " >&6; }
-if test "${ac_cv_struct_tm_gmtoff+set}" = set; then
+if test "${ac_cv_struct_tm_gmtoff+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 			#include <time.h>
@@ -22003,53 +15970,26 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_struct_tm_gmtoff=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_struct_tm_gmtoff=no
+  ac_cv_struct_tm_gmtoff=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_struct_tm_gmtoff" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm_gmtoff" >&5
 $as_echo "$ac_cv_struct_tm_gmtoff" >&6; }
 	if test $ac_cv_struct_tm_gmtoff = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_TM_GMTOFF 1
-_ACEOF
+$as_echo "#define HAVE_TM_GMTOFF 1" >>confdefs.h
 
 	else
-		{ $as_echo "$as_me:$LINENO: checking for timezone variable" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for timezone variable" >&5
 $as_echo_n "checking for timezone variable... " >&6; }
-if test "${ac_cv_var_timezone+set}" = set; then
+if test "${ac_cv_var_timezone+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 				#include <time.h>
@@ -22064,157 +16004,38 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_var_timezone=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_var_timezone=no
+  ac_cv_var_timezone=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_var_timezone" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_timezone" >&5
 $as_echo "$ac_cv_var_timezone" >&6; }
 		if test $ac_cv_var_timezone = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_TIMEZONE 1
-_ACEOF
+$as_echo "#define HAVE_TIMEZONE 1" >>confdefs.h
 
 		else
-			{ { $as_echo "$as_me:$LINENO: error: unable to find a way to determine timezone" >&5
-$as_echo "$as_me: error: unable to find a way to determine timezone" >&2;}
-   { (exit 1); exit 1; }; }
+			as_fn_error "unable to find a way to determine timezone" "$LINENO" 5
 		fi
 	fi
 
 			        LIBS="$LIBS -lm";
 	if test "x$has_broken_apple_cpp" != "xyes"; then
-
-for ac_func in finite
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	        for ac_func in finite
+do :
+  ac_fn_c_check_func "$LINENO" "finite" "ac_cv_func_finite"
+if test "x$ac_cv_func_finite" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_FINITE 1
 _ACEOF
 
 else
-  { $as_echo "$as_me:$LINENO: checking for finite in math.h" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for finite in math.h" >&5
 $as_echo_n "checking for finite in math.h... " >&6; }
-	                cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	                cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <math.h>
 int
@@ -22225,154 +16046,33 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_FINITE 1
-_ACEOF
- { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "#define HAVE_FINITE 1" >>confdefs.h
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	{ $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
 done
 
 	fi
-
-for ac_func in isfinite
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+        for ac_func in isfinite
+do :
+  ac_fn_c_check_func "$LINENO" "isfinite" "ac_cv_func_isfinite"
+if test "x$ac_cv_func_isfinite" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_ISFINITE 1
 _ACEOF
 
 else
-  { $as_echo "$as_me:$LINENO: checking for isfinite in math.h" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isfinite in math.h" >&5
 $as_echo_n "checking for isfinite in math.h... " >&6; }
-                cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+                cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <math.h>
 int
@@ -22383,157 +16083,36 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ISFINITE 1
-_ACEOF
- { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "#define HAVE_ISFINITE 1" >>confdefs.h
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	{ $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
 done
 
 
-
-for ac_func in poll
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+					for ac_func in poll
+do :
+  ac_fn_c_check_func "$LINENO" "poll" "ac_cv_func_poll"
+if test "x$ac_cv_func_poll" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_POLL 1
 _ACEOF
 
 fi
 done
 
 
-				{ $as_echo "$as_me:$LINENO: checking for signbit" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for signbit" >&5
 $as_echo_n "checking for signbit... " >&6; }
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <math.h>
 int
@@ -22546,190 +16125,29 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
 
-		{ $as_echo "$as_me:$LINENO: result: yes" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SIGNBIT 1
-_ACEOF
+$as_echo "#define HAVE_SIGNBIT 1" >>confdefs.h
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-
-		{ $as_echo "$as_me:$LINENO: result: no" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-
-
-for ac_header in sys/epoll.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+				for ac_header in sys/epoll.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/epoll.h" "ac_cv_header_sys_epoll_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_epoll_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_SYS_EPOLL_H 1
 _ACEOF
 
 fi
@@ -22737,102 +16155,12 @@ fi
 done
 
 	haveepoll=no
-
-for ac_func in epoll_ctl
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in epoll_ctl
+do :
+  ac_fn_c_check_func "$LINENO" "epoll_ctl" "ac_cv_func_epoll_ctl"
+if test "x$ac_cv_func_epoll_ctl" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_EPOLL_CTL 1
 _ACEOF
  haveepoll=yes
 fi
@@ -22840,311 +16168,37 @@ done
 
 	if test "x$haveepoll" = "xyes" -a "x$ac_cv_header_sys_epoll_h" = "xyes" ; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_EPOLL 1
-_ACEOF
+$as_echo "#define HAVE_EPOLL 1" >>confdefs.h
 
 	fi
 
-
-for ac_header in sys/ioctl.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+				for ac_header in sys/ioctl.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/ioctl.h" "ac_cv_header_sys_ioctl_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_ioctl_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_SYS_IOCTL_H 1
 _ACEOF
 
 fi
 
 done
 
-
-for ac_header in net/if.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_header in net/if.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "net/if.h" "ac_cv_header_net_if_h" "$ac_includes_default"
+if test "x$ac_cv_header_net_if_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_NET_IF_H 1
 _ACEOF
 
 fi
 
 done
 
-	{ $as_echo "$as_me:$LINENO: checking for ifreq" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ifreq" >&5
 $as_echo_n "checking for ifreq... " >&6; }
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 		#include <stdio.h>
@@ -23166,51 +16220,24 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
-			{ $as_echo "$as_me:$LINENO: result: yes" >&5
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SIOCGIFCONF 1
-_ACEOF
+$as_echo "#define HAVE_SIOCGIFCONF 1" >>confdefs.h
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
 
-			{ $as_echo "$as_me:$LINENO: result: no" >&5
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-				{ $as_echo "$as_me:$LINENO: checking for sockaddr_in.sin_len" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sockaddr_in.sin_len" >&5
 $as_echo_n "checking for sockaddr_in.sin_len... " >&6; }
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 		#include <netinet/in.h>
@@ -23226,51 +16253,24 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
-			{ $as_echo "$as_me:$LINENO: result: yes" >&5
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SOCKADDR_IN_SIN_LEN 1
-_ACEOF
+$as_echo "#define HAVE_SOCKADDR_IN_SIN_LEN 1" >>confdefs.h
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
 
-			{ $as_echo "$as_me:$LINENO: result: no" >&5
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-				{ $as_echo "$as_me:$LINENO: checking for sockaddr_in6.sin6_len" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sockaddr_in6.sin6_len" >&5
 $as_echo_n "checking for sockaddr_in6.sin6_len... " >&6; }
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 		#include <netinet/in.h>
@@ -23286,4013 +16286,402 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
-			{ $as_echo "$as_me:$LINENO: result: yes" >&5
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SOCKADDR_IN6_SIN_LEN 1
-_ACEOF
+$as_echo "#define HAVE_SOCKADDR_IN6_SIN_LEN 1" >>confdefs.h
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-
-			{ $as_echo "$as_me:$LINENO: result: no" >&5
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-for ac_header in checklist.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+				for ac_header in checklist.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "checklist.h" "ac_cv_header_checklist_h" "$ac_includes_default"
+if test "x$ac_cv_header_checklist_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_CHECKLIST_H 1
 _ACEOF
 
 fi
 
 done
 
-
-for ac_header in fstab.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_header in fstab.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "fstab.h" "ac_cv_header_fstab_h" "$ac_includes_default"
+if test "x$ac_cv_header_fstab_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_FSTAB_H 1
 _ACEOF
 
 fi
 
 done
 
-
-for ac_header in attr/xattr.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_header in attr/xattr.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "attr/xattr.h" "ac_cv_header_attr_xattr_h" "$ac_includes_default"
+if test "x$ac_cv_header_attr_xattr_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_ATTR_XATTR_H 1
 _ACEOF
 
 fi
 
 done
 
-
-for ac_header in sys/extattr.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_header in sys/extattr.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/extattr.h" "ac_cv_header_sys_extattr_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_extattr_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_SYS_EXTATTR_H 1
 _ACEOF
 
 fi
 
 done
 
-
-for ac_header in sys/sendfile.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_header in sys/sendfile.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/sendfile.h" "ac_cv_header_sys_sendfile_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_sendfile_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_SYS_SENDFILE_H 1
 _ACEOF
 
 fi
 
 done
 
-
-for ac_header in sys/statvfs.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_header in sys/statvfs.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/statvfs.h" "ac_cv_header_sys_statvfs_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_statvfs_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_SYS_STATVFS_H 1
 _ACEOF
 
 fi
 
 done
 
-
-for ac_header in sys/statfs.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_header in sys/statfs.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/statfs.h" "ac_cv_header_sys_statfs_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_statfs_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_SYS_STATFS_H 1
 _ACEOF
 
 fi
 
 done
 
-
-for ac_header in sys/vfstab.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_header in sys/vfstab.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/vfstab.h" "ac_cv_header_sys_vfstab_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_vfstab_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_SYS_VFSTAB_H 1
 _ACEOF
 
 fi
 
 done
 
-
-for ac_header in sys/xattr.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_header in sys/xattr.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/xattr.h" "ac_cv_header_sys_xattr_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_xattr_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_SYS_XATTR_H 1
 _ACEOF
 
 fi
 
 done
 
-
-for ac_header in sys/mman.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_header in sys/mman.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/mman.h" "ac_cv_header_sys_mman_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_mman_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_SYS_MMAN_H 1
 _ACEOF
 
 fi
 
 done
 
-
-for ac_header in sys/param.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_header in sys/param.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_param_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_SYS_PARAM_H 1
 _ACEOF
 
 fi
 
 done
 
-
-for ac_header in sys/mount.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_header in sys/mount.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/mount.h" "ac_cv_header_sys_mount_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_mount_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_SYS_MOUNT_H 1
 _ACEOF
 
 fi
 
 done
 
-
-for ac_func in getdomainname
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in getdomainname
+do :
+  ac_fn_c_check_func "$LINENO" "getdomainname" "ac_cv_func_getdomainname"
+if test "x$ac_cv_func_getdomainname" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_GETDOMAINNAME 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in setdomainname
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in setdomainname
+do :
+  ac_fn_c_check_func "$LINENO" "setdomainname" "ac_cv_func_setdomainname"
+if test "x$ac_cv_func_setdomainname" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_SETDOMAINNAME 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in fgetgrent
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in fgetgrent
+do :
+  ac_fn_c_check_func "$LINENO" "fgetgrent" "ac_cv_func_fgetgrent"
+if test "x$ac_cv_func_fgetgrent" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_FGETGRENT 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in fgetpwent
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in fgetpwent
+do :
+  ac_fn_c_check_func "$LINENO" "fgetpwent" "ac_cv_func_fgetpwent"
+if test "x$ac_cv_func_fgetpwent" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_FGETPWENT 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in fgetpwent
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in fgetpwent
+do :
+  ac_fn_c_check_func "$LINENO" "fgetpwent" "ac_cv_func_fgetpwent"
+if test "x$ac_cv_func_fgetpwent" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_FGETPWENT 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in getfsstat
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in getfsstat
+do :
+  ac_fn_c_check_func "$LINENO" "getfsstat" "ac_cv_func_getfsstat"
+if test "x$ac_cv_func_getfsstat" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_GETFSSTAT 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in lutimes
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in lutimes
+do :
+  ac_fn_c_check_func "$LINENO" "lutimes" "ac_cv_func_lutimes"
+if test "x$ac_cv_func_lutimes" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_LUTIMES 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in mremap
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in mremap
+do :
+  ac_fn_c_check_func "$LINENO" "mremap" "ac_cv_func_mremap"
+if test "x$ac_cv_func_mremap" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_MREMAP 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in remap_file_pages
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in remap_file_pages
+do :
+  ac_fn_c_check_func "$LINENO" "remap_file_pages" "ac_cv_func_remap_file_pages"
+if test "x$ac_cv_func_remap_file_pages" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_REMAP_FILE_PAGES 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in posix_fadvise
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in posix_fadvise
+do :
+  ac_fn_c_check_func "$LINENO" "posix_fadvise" "ac_cv_func_posix_fadvise"
+if test "x$ac_cv_func_posix_fadvise" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_POSIX_FADVISE 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in posix_fallocate
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in posix_fallocate
+do :
+  ac_fn_c_check_func "$LINENO" "posix_fallocate" "ac_cv_func_posix_fallocate"
+if test "x$ac_cv_func_posix_fallocate" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_POSIX_FALLOCATE 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in posix_madvise
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in posix_madvise
+do :
+  ac_fn_c_check_func "$LINENO" "posix_madvise" "ac_cv_func_posix_madvise"
+if test "x$ac_cv_func_posix_madvise" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_POSIX_MADVISE 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in vsnprintf
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in vsnprintf
+do :
+  ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf"
+if test "x$ac_cv_func_vsnprintf" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_VSNPRINTF 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in sendfile
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in sendfile
+do :
+  ac_fn_c_check_func "$LINENO" "sendfile" "ac_cv_func_sendfile"
+if test "x$ac_cv_func_sendfile" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_SENDFILE 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in sethostid
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in sethostid
+do :
+  ac_fn_c_check_func "$LINENO" "sethostid" "ac_cv_func_sethostid"
+if test "x$ac_cv_func_sethostid" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_SETHOSTID 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in statfs
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in statfs
+do :
+  ac_fn_c_check_func "$LINENO" "statfs" "ac_cv_func_statfs"
+if test "x$ac_cv_func_statfs" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_STATFS 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in fstatfs
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in fstatfs
+do :
+  ac_fn_c_check_func "$LINENO" "fstatfs" "ac_cv_func_fstatfs"
+if test "x$ac_cv_func_fstatfs" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_FSTATFS 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in statvfs
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in statvfs
+do :
+  ac_fn_c_check_func "$LINENO" "statvfs" "ac_cv_func_statvfs"
+if test "x$ac_cv_func_statvfs" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_STATVFS 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in fstatvfs
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in fstatvfs
+do :
+  ac_fn_c_check_func "$LINENO" "fstatvfs" "ac_cv_func_fstatvfs"
+if test "x$ac_cv_func_fstatvfs" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_FSTATVFS 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in stime
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in stime
+do :
+  ac_fn_c_check_func "$LINENO" "stime" "ac_cv_func_stime"
+if test "x$ac_cv_func_stime" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_STIME 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in strerror_r
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in strerror_r
+do :
+  ac_fn_c_check_func "$LINENO" "strerror_r" "ac_cv_func_strerror_r"
+if test "x$ac_cv_func_strerror_r" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_STRERROR_R 1
 _ACEOF
 
 fi
 done
 
-
-for ac_func in ttyname_r
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in ttyname_r
+do :
+  ac_fn_c_check_func "$LINENO" "ttyname_r" "ac_cv_func_ttyname_r"
+if test "x$ac_cv_func_ttyname_r" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_TTYNAME_R 1
 _ACEOF
 
 fi
@@ -27302,352 +16691,27 @@ done
 # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
 # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
 # This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:$LINENO: checking size of size_t" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of size_t" >&5
 $as_echo_n "checking size of size_t... " >&6; }
-if test "${ac_cv_sizeof_size_t+set}" = set; then
+if test "${ac_cv_sizeof_size_t+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  if test "$cross_compiling" = yes; then
-  # Depending upon the size, compute the lo and hi bounds.
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (size_t))) >= 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=0 ac_mid=0
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (size_t))) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_lo=`expr $ac_mid + 1`
-			if test $ac_lo -le $ac_mid; then
-			  ac_lo= ac_hi=
-			  break
-			fi
-			ac_mid=`expr 2 '*' $ac_mid + 1`
-fi
+  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (size_t))" "ac_cv_sizeof_size_t"        "$ac_includes_default"; then :
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (size_t))) < 0)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=-1 ac_mid=-1
-  while :; do
-    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (size_t))) >= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_lo=$ac_mid; break
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_hi=`expr '(' $ac_mid ')' - 1`
-			if test $ac_mid -le $ac_hi; then
-			  ac_lo= ac_hi=
-			  break
-			fi
-			ac_mid=`expr 2 '*' $ac_mid`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-  done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_lo= ac_hi=
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-# Binary search between lo and hi bounds.
-while test "x$ac_lo" != "x$ac_hi"; do
-  ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo`
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-int
-main ()
-{
-static int test_array [1 - 2 * !(((long int) (sizeof (size_t))) <= $ac_mid)];
-test_array [0] = 0
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_hi=$ac_mid
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_lo=`expr '(' $ac_mid ')' + 1`
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
-case $ac_lo in
-?*) ac_cv_sizeof_size_t=$ac_lo;;
-'') if test "$ac_cv_type_size_t" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+  if test "$ac_cv_type_size_t" = yes; then
+     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (size_t)
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute sizeof (size_t)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
-   else
-     ac_cv_sizeof_size_t=0
-   fi ;;
-esac
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-static long int longval () { return (long int) (sizeof (size_t)); }
-static unsigned long int ulongval () { return (long int) (sizeof (size_t)); }
-#include <stdio.h>
-#include <stdlib.h>
-int
-main ()
-{
-
-  FILE *f = fopen ("conftest.val", "w");
-  if (! f)
-    return 1;
-  if (((long int) (sizeof (size_t))) < 0)
-    {
-      long int i = longval ();
-      if (i != ((long int) (sizeof (size_t))))
-	return 1;
-      fprintf (f, "%ld", i);
-    }
-  else
-    {
-      unsigned long int i = ulongval ();
-      if (i != ((long int) (sizeof (size_t))))
-	return 1;
-      fprintf (f, "%lu", i);
-    }
-  /* Do not output a trailing newline, as this causes \r\n confusion
-     on some platforms.  */
-  return ferror (f) || fclose (f) != 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  ac_cv_sizeof_size_t=`cat conftest.val`
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-( exit $ac_status )
-if test "$ac_cv_type_size_t" = yes; then
-     { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute sizeof (size_t)
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute sizeof (size_t)
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
+{ as_fn_set_status 77
+as_fn_error "cannot compute sizeof (size_t)
+See \`config.log' for more details." "$LINENO" 5; }; }
    else
      ac_cv_sizeof_size_t=0
    fi
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f conftest.val
+
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_sizeof_size_t" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_size_t" >&5
 $as_echo "$ac_cv_sizeof_size_t" >&6; }
 
 
@@ -27657,1206 +16721,140 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
-	{ $as_echo "$as_me:$LINENO: checking for blksize_t" >&5
-$as_echo_n "checking for blksize_t... " >&6; }
-if test "${ac_cv_type_blksize_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_blksize_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-		 #include <sys/stat.h>
-		 #include <unistd.h>
-
-int
-main ()
-{
-if (sizeof (blksize_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
+	ac_fn_c_check_type "$LINENO" "blksize_t" "ac_cv_type_blksize_t" "#include <sys/types.h>
 		 #include <sys/stat.h>
 		 #include <unistd.h>
-
-int
-main ()
-{
-if (sizeof ((blksize_t)))
-	  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_type_blksize_t=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_blksize_t" >&5
-$as_echo "$ac_cv_type_blksize_t" >&6; }
-if test "x$ac_cv_type_blksize_t" = x""yes; then
+"
+if test "x$ac_cv_type_blksize_t" = x""yes; then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_BLKSIZE_T 1
 _ACEOF
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_BLKSIZE_T 1
-_ACEOF
+$as_echo "#define HAVE_BLKSIZE_T 1" >>confdefs.h
 
 fi
 
-	{ $as_echo "$as_me:$LINENO: checking for blkcnt_t" >&5
-$as_echo_n "checking for blkcnt_t... " >&6; }
-if test "${ac_cv_type_blkcnt_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_blkcnt_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-		 #include <sys/stat.h>
-		 #include <unistd.h>
-
-int
-main ()
-{
-if (sizeof (blkcnt_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
+	ac_fn_c_check_type "$LINENO" "blkcnt_t" "ac_cv_type_blkcnt_t" "#include <sys/types.h>
 		 #include <sys/stat.h>
 		 #include <unistd.h>
-
-int
-main ()
-{
-if (sizeof ((blkcnt_t)))
-	  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_type_blkcnt_t=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_blkcnt_t" >&5
-$as_echo "$ac_cv_type_blkcnt_t" >&6; }
-if test "x$ac_cv_type_blkcnt_t" = x""yes; then
+"
+if test "x$ac_cv_type_blkcnt_t" = x""yes; then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_BLKCNT_T 1
 _ACEOF
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_BLKCNT_T 1
-_ACEOF
+$as_echo "#define HAVE_BLKCNT_T 1" >>confdefs.h
 
 fi
 
-	{ $as_echo "$as_me:$LINENO: checking for suseconds_t" >&5
-$as_echo_n "checking for suseconds_t... " >&6; }
-if test "${ac_cv_type_suseconds_t+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_suseconds_t=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/time.h>
-
-int
-main ()
-{
-if (sizeof (suseconds_t))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/time.h>
-
-int
-main ()
-{
-if (sizeof ((suseconds_t)))
-	  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_type_suseconds_t=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_suseconds_t" >&5
-$as_echo "$ac_cv_type_suseconds_t" >&6; }
-if test "x$ac_cv_type_suseconds_t" = x""yes; then
+	ac_fn_c_check_type "$LINENO" "suseconds_t" "ac_cv_type_suseconds_t" "#include <sys/time.h>
+"
+if test "x$ac_cv_type_suseconds_t" = x""yes; then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_SUSECONDS_T 1
 _ACEOF
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SUSECONDS_T 1
-_ACEOF
+$as_echo "#define HAVE_SUSECONDS_T 1" >>confdefs.h
 
 fi
 
-	{ $as_echo "$as_me:$LINENO: checking for struct flock" >&5
-$as_echo_n "checking for struct flock... " >&6; }
-if test "${ac_cv_type_struct_flock+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_struct_flock=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <unistd.h>
-		 #include <fcntl.h>
-
-int
-main ()
-{
-if (sizeof (struct flock))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <unistd.h>
+	ac_fn_c_check_type "$LINENO" "struct flock" "ac_cv_type_struct_flock" "#include <unistd.h>
 		 #include <fcntl.h>
-
-int
-main ()
-{
-if (sizeof ((struct flock)))
-	  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_type_struct_flock=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_struct_flock" >&5
-$as_echo "$ac_cv_type_struct_flock" >&6; }
-if test "x$ac_cv_type_struct_flock" = x""yes; then
+"
+if test "x$ac_cv_type_struct_flock" = x""yes; then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_FLOCK 1
 _ACEOF
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STRUCT_FLOCK 1
-_ACEOF
+$as_echo "#define HAVE_STRUCT_FLOCK 1" >>confdefs.h
 
 fi
 
-	{ $as_echo "$as_me:$LINENO: checking for struct pollfd" >&5
-$as_echo_n "checking for struct pollfd... " >&6; }
-if test "${ac_cv_type_struct_pollfd+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_struct_pollfd=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/poll.h>
-
-int
-main ()
-{
-if (sizeof (struct pollfd))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/poll.h>
-
-int
-main ()
-{
-if (sizeof ((struct pollfd)))
-	  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_type_struct_pollfd=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_struct_pollfd" >&5
-$as_echo "$ac_cv_type_struct_pollfd" >&6; }
-if test "x$ac_cv_type_struct_pollfd" = x""yes; then
+	ac_fn_c_check_type "$LINENO" "struct pollfd" "ac_cv_type_struct_pollfd" "#include <sys/poll.h>
+"
+if test "x$ac_cv_type_struct_pollfd" = x""yes; then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_POLLFD 1
 _ACEOF
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STRUCT_POLLFD 1
-_ACEOF
+$as_echo "#define HAVE_STRUCT_POLLFD 1" >>confdefs.h
 
 fi
 
-	{ $as_echo "$as_me:$LINENO: checking for struct stat" >&5
-$as_echo_n "checking for struct stat... " >&6; }
-if test "${ac_cv_type_struct_stat+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_struct_stat=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
+	ac_fn_c_check_type "$LINENO" "struct stat" "ac_cv_type_struct_stat" "#include <sys/types.h>
 		 #include <sys/stat.h>
 		 #include <unistd.h>
-
-int
-main ()
-{
-if (sizeof (struct stat))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-		 #include <sys/stat.h>
-		 #include <unistd.h>
-
-int
-main ()
-{
-if (sizeof ((struct stat)))
-	  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_type_struct_stat=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_struct_stat" >&5
-$as_echo "$ac_cv_type_struct_stat" >&6; }
-if test "x$ac_cv_type_struct_stat" = x""yes; then
+"
+if test "x$ac_cv_type_struct_stat" = x""yes; then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_STAT 1
 _ACEOF
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STRUCT_STAT 1
-_ACEOF
-
-fi
-
-	{ $as_echo "$as_me:$LINENO: checking for struct timespec" >&5
-$as_echo_n "checking for struct timespec... " >&6; }
-if test "${ac_cv_type_struct_timespec+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_struct_timespec=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <time.h>
-
-int
-main ()
-{
-if (sizeof (struct timespec))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <time.h>
-
-int
-main ()
-{
-if (sizeof ((struct timespec)))
-	  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_type_struct_timespec=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
+$as_echo "#define HAVE_STRUCT_STAT 1" >>confdefs.h
 
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_struct_timespec" >&5
-$as_echo "$ac_cv_type_struct_timespec" >&6; }
-if test "x$ac_cv_type_struct_timespec" = x""yes; then
+	ac_fn_c_check_type "$LINENO" "struct timespec" "ac_cv_type_struct_timespec" "#include <time.h>
+"
+if test "x$ac_cv_type_struct_timespec" = x""yes; then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_TIMESPEC 1
 _ACEOF
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STRUCT_TIMESPEC 1
-_ACEOF
+$as_echo "#define HAVE_STRUCT_TIMESPEC 1" >>confdefs.h
 
 fi
 
-	{ $as_echo "$as_me:$LINENO: checking for struct timeval" >&5
-$as_echo_n "checking for struct timeval... " >&6; }
-if test "${ac_cv_type_struct_timeval+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_struct_timeval=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/time.h>
+	ac_fn_c_check_type "$LINENO" "struct timeval" "ac_cv_type_struct_timeval" "#include <sys/time.h>
 		 #include <sys/types.h>
 		 #include <utime.h>
-
-int
-main ()
-{
-if (sizeof (struct timeval))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/time.h>
-		 #include <sys/types.h>
-		 #include <utime.h>
-
-int
-main ()
-{
-if (sizeof ((struct timeval)))
-	  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_type_struct_timeval=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_struct_timeval" >&5
-$as_echo "$ac_cv_type_struct_timeval" >&6; }
-if test "x$ac_cv_type_struct_timeval" = x""yes; then
+"
+if test "x$ac_cv_type_struct_timeval" = x""yes; then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_TIMEVAL 1
 _ACEOF
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STRUCT_TIMEVAL 1
-_ACEOF
-
-fi
-
-	{ $as_echo "$as_me:$LINENO: checking for struct timezone" >&5
-$as_echo_n "checking for struct timezone... " >&6; }
-if test "${ac_cv_type_struct_timezone+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_struct_timezone=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/time.h>
-
-int
-main ()
-{
-if (sizeof (struct timezone))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/time.h>
-
-int
-main ()
-{
-if (sizeof ((struct timezone)))
-	  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_type_struct_timezone=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
+$as_echo "#define HAVE_STRUCT_TIMEVAL 1" >>confdefs.h
 
 fi
 
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_struct_timezone" >&5
-$as_echo "$ac_cv_type_struct_timezone" >&6; }
-if test "x$ac_cv_type_struct_timezone" = x""yes; then
+	ac_fn_c_check_type "$LINENO" "struct timezone" "ac_cv_type_struct_timezone" "#include <sys/time.h>
+"
+if test "x$ac_cv_type_struct_timezone" = x""yes; then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_TIMEZONE 1
 _ACEOF
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STRUCT_TIMEZONE 1
-_ACEOF
+$as_echo "#define HAVE_STRUCT_TIMEZONE 1" >>confdefs.h
 
 fi
 
-	{ $as_echo "$as_me:$LINENO: checking for struct utimbuf" >&5
-$as_echo_n "checking for struct utimbuf... " >&6; }
-if test "${ac_cv_type_struct_utimbuf+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_type_struct_utimbuf=no
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-		 #include <utime.h>
-
-int
-main ()
-{
-if (sizeof (struct utimbuf))
-       return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
+	ac_fn_c_check_type "$LINENO" "struct utimbuf" "ac_cv_type_struct_utimbuf" "#include <sys/types.h>
 		 #include <utime.h>
-
-int
-main ()
-{
-if (sizeof ((struct utimbuf)))
-	  return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_type_struct_utimbuf=yes
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_type_struct_utimbuf" >&5
-$as_echo "$ac_cv_type_struct_utimbuf" >&6; }
-if test "x$ac_cv_type_struct_utimbuf" = x""yes; then
+"
+if test "x$ac_cv_type_struct_utimbuf" = x""yes; then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_UTIMBUF 1
 _ACEOF
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_STRUCT_UTIMBUF 1
-_ACEOF
+$as_echo "#define HAVE_STRUCT_UTIMBUF 1" >>confdefs.h
 
 fi
 
-	{ $as_echo "$as_me:$LINENO: checking for struct dirent.d_off" >&5
-$as_echo_n "checking for struct dirent.d_off... " >&6; }
-if test "${ac_cv_member_struct_dirent_d_off+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
+	ac_fn_c_check_member "$LINENO" "struct dirent" "d_off" "ac_cv_member_struct_dirent_d_off" "#include <sys/types.h>
 		 #include <dirent.h>
-
-int
-main ()
-{
-static struct dirent ac_aggr;
-if (ac_aggr.d_off)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_dirent_d_off=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-		 #include <dirent.h>
-
-int
-main ()
-{
-static struct dirent ac_aggr;
-if (sizeof ac_aggr.d_off)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_dirent_d_off=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_member_struct_dirent_d_off=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_dirent_d_off" >&5
-$as_echo "$ac_cv_member_struct_dirent_d_off" >&6; }
-if test "x$ac_cv_member_struct_dirent_d_off" = x""yes; then
+"
+if test "x$ac_cv_member_struct_dirent_d_off" = x""yes; then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_DIRENT_D_OFF 1
@@ -28864,106 +16862,10 @@ _ACEOF
 
 
 fi
-{ $as_echo "$as_me:$LINENO: checking for struct dirent.d_reclen" >&5
-$as_echo_n "checking for struct dirent.d_reclen... " >&6; }
-if test "${ac_cv_member_struct_dirent_d_reclen+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
+ac_fn_c_check_member "$LINENO" "struct dirent" "d_reclen" "ac_cv_member_struct_dirent_d_reclen" "#include <sys/types.h>
 		 #include <dirent.h>
-
-int
-main ()
-{
-static struct dirent ac_aggr;
-if (ac_aggr.d_reclen)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_dirent_d_reclen=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-		 #include <dirent.h>
-
-int
-main ()
-{
-static struct dirent ac_aggr;
-if (sizeof ac_aggr.d_reclen)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_dirent_d_reclen=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_member_struct_dirent_d_reclen=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_dirent_d_reclen" >&5
-$as_echo "$ac_cv_member_struct_dirent_d_reclen" >&6; }
-if test "x$ac_cv_member_struct_dirent_d_reclen" = x""yes; then
+"
+if test "x$ac_cv_member_struct_dirent_d_reclen" = x""yes; then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_DIRENT_D_RECLEN 1
@@ -28971,106 +16873,10 @@ _ACEOF
 
 
 fi
-{ $as_echo "$as_me:$LINENO: checking for struct dirent.d_type" >&5
-$as_echo_n "checking for struct dirent.d_type... " >&6; }
-if test "${ac_cv_member_struct_dirent_d_type+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
+ac_fn_c_check_member "$LINENO" "struct dirent" "d_type" "ac_cv_member_struct_dirent_d_type" "#include <sys/types.h>
 		 #include <dirent.h>
-
-int
-main ()
-{
-static struct dirent ac_aggr;
-if (ac_aggr.d_type)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_dirent_d_type=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-		 #include <dirent.h>
-
-int
-main ()
-{
-static struct dirent ac_aggr;
-if (sizeof ac_aggr.d_type)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_dirent_d_type=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_member_struct_dirent_d_type=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_dirent_d_type" >&5
-$as_echo "$ac_cv_member_struct_dirent_d_type" >&6; }
-if test "x$ac_cv_member_struct_dirent_d_type" = x""yes; then
+"
+if test "x$ac_cv_member_struct_dirent_d_type" = x""yes; then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_DIRENT_D_TYPE 1
@@ -29080,106 +16886,18 @@ _ACEOF
 fi
 
 
-		{ $as_echo "$as_me:$LINENO: checking for lsetxattr" >&5
-$as_echo_n "checking for lsetxattr... " >&6; }
-if test "${ac_cv_func_lsetxattr+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define lsetxattr to an innocuous variant, in case <limits.h> declares lsetxattr.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define lsetxattr innocuous_lsetxattr
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char lsetxattr (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef lsetxattr
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char lsetxattr ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_lsetxattr || defined __stub___lsetxattr
-choke me
-#endif
-
-int
-main ()
-{
-return lsetxattr ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_lsetxattr=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func_lsetxattr=no
-fi
+		ac_fn_c_check_func "$LINENO" "lsetxattr" "ac_cv_func_lsetxattr"
+if test "x$ac_cv_func_lsetxattr" = x""yes; then :
 
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_lsetxattr" >&5
-$as_echo "$ac_cv_func_lsetxattr" >&6; }
-if test "x$ac_cv_func_lsetxattr" = x""yes; then
-  :
 else
-  { $as_echo "$as_me:$LINENO: checking for lsetxattr in -lattr" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for lsetxattr in -lattr" >&5
 $as_echo_n "checking for lsetxattr in -lattr... " >&6; }
-if test "${ac_cv_lib_attr_lsetxattr+set}" = set; then
+if test "${ac_cv_lib_attr_lsetxattr+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lattr  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -29197,43 +16915,18 @@ return lsetxattr ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_attr_lsetxattr=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_attr_lsetxattr=no
+  ac_cv_lib_attr_lsetxattr=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_attr_lsetxattr" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_attr_lsetxattr" >&5
 $as_echo "$ac_cv_lib_attr_lsetxattr" >&6; }
-if test "x$ac_cv_lib_attr_lsetxattr" = x""yes; then
+if test "x$ac_cv_lib_attr_lsetxattr" = x""yes; then :
   XATTR_LIB="-lattr"
 fi
 
@@ -29242,110 +16935,12 @@ fi
 
 
 
-		{ $as_echo "$as_me:$LINENO: checking for struct kinfo_proc.kp_proc" >&5
-$as_echo_n "checking for struct kinfo_proc.kp_proc... " >&6; }
-if test "${ac_cv_member_struct_kinfo_proc_kp_proc+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
-		 #include <sys/sysctl.h>
-		 #include <sys/proc.h>
-
-
-int
-main ()
-{
-static struct kinfo_proc ac_aggr;
-if (ac_aggr.kp_proc)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_kinfo_proc_kp_proc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/types.h>
+		ac_fn_c_check_member "$LINENO" "struct kinfo_proc" "kp_proc" "ac_cv_member_struct_kinfo_proc_kp_proc" "#include <sys/types.h>
 		 #include <sys/sysctl.h>
 		 #include <sys/proc.h>
 
-
-int
-main ()
-{
-static struct kinfo_proc ac_aggr;
-if (sizeof ac_aggr.kp_proc)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_cv_member_struct_kinfo_proc_kp_proc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_member_struct_kinfo_proc_kp_proc=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_member_struct_kinfo_proc_kp_proc" >&5
-$as_echo "$ac_cv_member_struct_kinfo_proc_kp_proc" >&6; }
-if test "x$ac_cv_member_struct_kinfo_proc_kp_proc" = x""yes; then
+"
+if test "x$ac_cv_member_struct_kinfo_proc_kp_proc" = x""yes; then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_STRUCT_KINFO_PROC_KP_PROC 1
@@ -29355,438 +16950,36 @@ _ACEOF
 fi
 
 
-
-for ac_header in sys/time.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+				for ac_header in sys/time.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_time_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_SYS_TIME_H 1
 _ACEOF
 
 fi
 
 done
 
-
-for ac_header in sys/param.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_header in sys/param.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_param_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_SYS_PARAM_H 1
 _ACEOF
 
 fi
 
 done
 
-
-for ac_header in dirent.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_header in dirent.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "dirent.h" "ac_cv_header_dirent_h" "$ac_includes_default"
+if test "x$ac_cv_header_dirent_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_DIRENT_H 1
 _ACEOF
 
 fi
@@ -29794,357 +16987,40 @@ fi
 done
 
 
-
-for ac_header in curses.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+				for ac_header in curses.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "curses.h" "ac_cv_header_curses_h" "$ac_includes_default"
+if test "x$ac_cv_header_curses_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_CURSES_H 1
 _ACEOF
 
 fi
 
 done
 
-
-for ac_header in term.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#if HAVE_CURSES_H
+	for ac_header in term.h
+do :
+  ac_fn_c_check_header_compile "$LINENO" "term.h" "ac_cv_header_term_h" "#if HAVE_CURSES_H
 	 #include <curses.h>
 	 #endif
 
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_ac_Header=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+"
+if test "x$ac_cv_header_term_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_TERM_H 1
 _ACEOF
 
 fi
 
 done
 
-
-for ac_header in termios.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_header in termios.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "termios.h" "ac_cv_header_termios_h" "$ac_includes_default"
+if test "x$ac_cv_header_termios_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_TERMIOS_H 1
 _ACEOF
 
 fi
@@ -30153,24 +17029,18 @@ done
 
 
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_GETPROCESSID 1
-_ACEOF
+$as_echo "#define HAVE_GETPROCESSID 1" >>confdefs.h
 
 else
 	jdk_headers_found=no
-	{ $as_echo "$as_me:$LINENO: checking for main in -lws2_32" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lws2_32" >&5
 $as_echo_n "checking for main in -lws2_32... " >&6; }
-if test "${ac_cv_lib_ws2_32_main+set}" = set; then
+if test "${ac_cv_lib_ws2_32_main+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lws2_32  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 
@@ -30182,62 +17052,31 @@ return main ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_ws2_32_main=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_ws2_32_main=no
+  ac_cv_lib_ws2_32_main=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ws2_32_main" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ws2_32_main" >&5
 $as_echo "$ac_cv_lib_ws2_32_main" >&6; }
-if test "x$ac_cv_lib_ws2_32_main" = x""yes; then
+if test "x$ac_cv_lib_ws2_32_main" = x""yes; then :
   LIBS="$LIBS -lws2_32"
 else
-  { { $as_echo "$as_me:$LINENO: error: bad mingw install?" >&5
-$as_echo "$as_me: error: bad mingw install?" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "bad mingw install?" "$LINENO" 5
 fi
 
-	{ $as_echo "$as_me:$LINENO: checking for main in -lpsapi" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lpsapi" >&5
 $as_echo_n "checking for main in -lpsapi... " >&6; }
-if test "${ac_cv_lib_psapi_main+set}" = set; then
+if test "${ac_cv_lib_psapi_main+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lpsapi  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 
@@ -30249,62 +17088,31 @@ return main ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_psapi_main=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_psapi_main=no
+  ac_cv_lib_psapi_main=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_psapi_main" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_psapi_main" >&5
 $as_echo "$ac_cv_lib_psapi_main" >&6; }
-if test "x$ac_cv_lib_psapi_main" = x""yes; then
+if test "x$ac_cv_lib_psapi_main" = x""yes; then :
   LIBS="$LIBS -lpsapi"
 else
-  { { $as_echo "$as_me:$LINENO: error: bad mingw install?" >&5
-$as_echo "$as_me: error: bad mingw install?" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "bad mingw install?" "$LINENO" 5
 fi
 
-	{ $as_echo "$as_me:$LINENO: checking for main in -lole32" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lole32" >&5
 $as_echo_n "checking for main in -lole32... " >&6; }
-if test "${ac_cv_lib_ole32_main+set}" = set; then
+if test "${ac_cv_lib_ole32_main+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lole32  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 
@@ -30316,62 +17124,31 @@ return main ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_ole32_main=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_ole32_main=no
+  ac_cv_lib_ole32_main=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_ole32_main" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ole32_main" >&5
 $as_echo "$ac_cv_lib_ole32_main" >&6; }
-if test "x$ac_cv_lib_ole32_main" = x""yes; then
+if test "x$ac_cv_lib_ole32_main" = x""yes; then :
   LIBS="$LIBS -lole32"
 else
-  { { $as_echo "$as_me:$LINENO: error: bad mingw install?" >&5
-$as_echo "$as_me: error: bad mingw install?" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "bad mingw install?" "$LINENO" 5
 fi
 
-	{ $as_echo "$as_me:$LINENO: checking for main in -lwinmm" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lwinmm" >&5
 $as_echo_n "checking for main in -lwinmm... " >&6; }
-if test "${ac_cv_lib_winmm_main+set}" = set; then
+if test "${ac_cv_lib_winmm_main+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lwinmm  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 
@@ -30383,62 +17160,31 @@ return main ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_winmm_main=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_winmm_main=no
+  ac_cv_lib_winmm_main=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_winmm_main" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_winmm_main" >&5
 $as_echo "$ac_cv_lib_winmm_main" >&6; }
-if test "x$ac_cv_lib_winmm_main" = x""yes; then
+if test "x$ac_cv_lib_winmm_main" = x""yes; then :
   LIBS="$LIBS -lwinmm"
 else
-  { { $as_echo "$as_me:$LINENO: error: bad mingw install?" >&5
-$as_echo "$as_me: error: bad mingw install?" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "bad mingw install?" "$LINENO" 5
 fi
 
-	{ $as_echo "$as_me:$LINENO: checking for main in -loleaut32" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -loleaut32" >&5
 $as_echo_n "checking for main in -loleaut32... " >&6; }
-if test "${ac_cv_lib_oleaut32_main+set}" = set; then
+if test "${ac_cv_lib_oleaut32_main+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-loleaut32  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 
@@ -30450,62 +17196,31 @@ return main ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_oleaut32_main=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_oleaut32_main=no
+  ac_cv_lib_oleaut32_main=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_oleaut32_main" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_oleaut32_main" >&5
 $as_echo "$ac_cv_lib_oleaut32_main" >&6; }
-if test "x$ac_cv_lib_oleaut32_main" = x""yes; then
+if test "x$ac_cv_lib_oleaut32_main" = x""yes; then :
   LIBS="$LIBS -loleaut32"
 else
-  { { $as_echo "$as_me:$LINENO: error: bad mingw install?" >&5
-$as_echo "$as_me: error: bad mingw install?" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "bad mingw install?" "$LINENO" 5
 fi
 
-	{ $as_echo "$as_me:$LINENO: checking for main in -ladvapi32" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ladvapi32" >&5
 $as_echo_n "checking for main in -ladvapi32... " >&6; }
-if test "${ac_cv_lib_advapi32_main+set}" = set; then
+if test "${ac_cv_lib_advapi32_main+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ladvapi32  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 
@@ -30517,62 +17232,31 @@ return main ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_advapi32_main=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_advapi32_main=no
+  ac_cv_lib_advapi32_main=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_advapi32_main" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_advapi32_main" >&5
 $as_echo "$ac_cv_lib_advapi32_main" >&6; }
-if test "x$ac_cv_lib_advapi32_main" = x""yes; then
+if test "x$ac_cv_lib_advapi32_main" = x""yes; then :
   LIBS="$LIBS -ladvapi32"
 else
-  { { $as_echo "$as_me:$LINENO: error: bad mingw install?" >&5
-$as_echo "$as_me: error: bad mingw install?" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "bad mingw install?" "$LINENO" 5
 fi
 
-	{ $as_echo "$as_me:$LINENO: checking for main in -lversion" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lversion" >&5
 $as_echo_n "checking for main in -lversion... " >&6; }
-if test "${ac_cv_lib_version_main+set}" = set; then
+if test "${ac_cv_lib_version_main+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lversion  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 
@@ -30584,58 +17268,27 @@ return main ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_version_main=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_version_main=no
+  ac_cv_lib_version_main=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_version_main" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_version_main" >&5
 $as_echo "$ac_cv_lib_version_main" >&6; }
-if test "x$ac_cv_lib_version_main" = x""yes; then
+if test "x$ac_cv_lib_version_main" = x""yes; then :
   LIBS="$LIBS -lversion"
 else
-  { { $as_echo "$as_me:$LINENO: error: bad mingw install?" >&5
-$as_echo "$as_me: error: bad mingw install?" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "bad mingw install?" "$LINENO" 5
 fi
 
 
-				{ $as_echo "$as_me:$LINENO: checking for struct ip_mreqn" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct ip_mreqn" >&5
 $as_echo_n "checking for struct ip_mreqn... " >&6; }
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ws2tcpip.h>
 int
@@ -30649,48 +17302,22 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
 		# Yes, we have it...
-		{ $as_echo "$as_me:$LINENO: result: yes" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-		cat >>confdefs.h <<\_ACEOF
-#define HAVE_STRUCT_IP_MREQN 1
-_ACEOF
+		$as_echo "#define HAVE_STRUCT_IP_MREQN 1" >>confdefs.h
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
 
 		# We'll just have to try and use struct ip_mreq
-		{ $as_echo "$as_me:$LINENO: result: no" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
-		{ $as_echo "$as_me:$LINENO: checking for struct ip_mreq" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for struct ip_mreq" >&5
 $as_echo_n "checking for struct ip_mreq... " >&6; }
-		cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+		cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ws2tcpip.h>
 int
@@ -30704,145 +17331,31 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
 			# Yes, we have it...
-			{ $as_echo "$as_me:$LINENO: result: yes" >&5
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
-			cat >>confdefs.h <<\_ACEOF
-#define HAVE_STRUCT_IP_MREQ 1
-_ACEOF
+			$as_echo "#define HAVE_STRUCT_IP_MREQ 1" >>confdefs.h
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
 
 			# No multicast support
-			{ $as_echo "$as_me:$LINENO: result: no" >&5
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-for ac_func in GetProcessId
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_func in GetProcessId
+do :
+  ac_fn_c_check_func "$LINENO" "GetProcessId" "ac_cv_func_GetProcessId"
+if test "x$ac_cv_func_GetProcessId" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_GETPROCESSID 1
 _ACEOF
 
 fi
@@ -30850,13 +17363,9 @@ done
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for socklen_t" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for socklen_t" >&5
 $as_echo_n "checking for socklen_t... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #include <sys/types.h>
@@ -30872,53 +17381,26 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
 ac_cv_c_socklen_t=yes
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_SOCKLEN_T 1
-_ACEOF
+$as_echo "#define HAVE_SOCKLEN_T 1" >>confdefs.h
 
-	{ $as_echo "$as_me:$LINENO: result: yes" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-
-	{ $as_echo "$as_me:$LINENO: result: no" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-{ $as_echo "$as_me:$LINENO: checking for array element initalizer support" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for array element initalizer support" >&5
 $as_echo_n "checking for array element initalizer support... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/socket.h>
 int
@@ -30931,154 +17413,37 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
 	# Yes, we have it...
-	{ $as_echo "$as_me:$LINENO: result: yes" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_ARRAY_ELEM_INIT 1
-_ACEOF
+$as_echo "#define HAVE_ARRAY_ELEM_INIT 1" >>confdefs.h
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
 
 	# We'll have to use signals
-	{ $as_echo "$as_me:$LINENO: result: no" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-
 for ac_func in trunc
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  ac_fn_c_check_func "$LINENO" "trunc" "ac_cv_func_trunc"
+if test "x$ac_cv_func_trunc" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_TRUNC 1
 _ACEOF
 
 else
-  { $as_echo "$as_me:$LINENO: checking for trunc in math.h" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for trunc in math.h" >&5
 $as_echo_n "checking for trunc in math.h... " >&6; }
 	# Simply calling trunc (0.0) is no good since gcc will optimize the call away
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <math.h>
 int
@@ -31089,64 +17454,33 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
 
-		cat >>confdefs.h <<\_ACEOF
-#define HAVE_TRUNC 1
-_ACEOF
+		$as_echo "#define HAVE_TRUNC 1" >>confdefs.h
 
-		{ $as_echo "$as_me:$LINENO: result: yes" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 		ac_cv_trunc=yes
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	{ $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi
 done
 
 
 if test "x$ac_cv_truncl" != "xyes"; then
-   { $as_echo "$as_me:$LINENO: checking for aintl in -lsunmath" >&5
+   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for aintl in -lsunmath" >&5
 $as_echo_n "checking for aintl in -lsunmath... " >&6; }
-if test "${ac_cv_lib_sunmath_aintl+set}" = set; then
+if test "${ac_cv_lib_sunmath_aintl+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lsunmath  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -31164,249 +17498,42 @@ return aintl ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_sunmath_aintl=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_sunmath_aintl=no
+  ac_cv_lib_sunmath_aintl=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_sunmath_aintl" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_sunmath_aintl" >&5
 $as_echo "$ac_cv_lib_sunmath_aintl" >&6; }
-if test "x$ac_cv_lib_sunmath_aintl" = x""yes; then
+if test "x$ac_cv_lib_sunmath_aintl" = x""yes; then :
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_AINTL 1
-_ACEOF
+$as_echo "#define HAVE_AINTL 1" >>confdefs.h
  LIBS="$LIBS -lsunmath"
 fi
 
 fi
 
-
 for ac_func in round
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  ac_fn_c_check_func "$LINENO" "round" "ac_cv_func_round"
+if test "x$ac_cv_func_round" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_ROUND 1
 _ACEOF
 
 fi
 done
 
-
 for ac_func in rint
-do
-as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5
-$as_echo_n "checking for $ac_func... " >&6; }
-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $ac_func innocuous_$ac_func
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $ac_func (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $ac_func
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $ac_func ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$ac_func || defined __stub___$ac_func
-choke me
-#endif
-
-int
-main ()
-{
-return $ac_func ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  eval "$as_ac_var=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_var=no"
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_var'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  ac_fn_c_check_func "$LINENO" "rint" "ac_cv_func_rint"
+if test "x$ac_cv_func_rint" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+#define HAVE_RINT 1
 _ACEOF
 
 fi
@@ -31414,16 +17541,16 @@ done
 
 
 
-{ $as_echo "$as_me:$LINENO: checking if usage of random device is requested" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if usage of random device is requested" >&5
 $as_echo_n "checking if usage of random device is requested... " >&6; }
 # Check whether --enable-dev-random was given.
-if test "${enable_dev_random+set}" = set; then
+if test "${enable_dev_random+set}" = set; then :
   enableval=$enable_dev_random; try_dev_random=$enableval
 else
   try_dev_random=yes
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $try_dev_random" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $try_dev_random" >&5
 $as_echo "$try_dev_random" >&6; }
 
 case "{$target}" in
@@ -31450,41 +17577,37 @@ _ACEOF
 
 
 if test "x$try_dev_random" = "xyes"; then
-    { $as_echo "$as_me:$LINENO: checking for random device" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for random device" >&5
 $as_echo_n "checking for random device... " >&6; }
-if test "${ac_cv_have_dev_random+set}" = set; then
+if test "${ac_cv_have_dev_random+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -r "$NAME_DEV_RANDOM" ; then
         ac_cv_have_dev_random=yes; else ac_cv_have_dev_random=no; fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_dev_random" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_have_dev_random" >&5
 $as_echo "$ac_cv_have_dev_random" >&6; }
     if test "x$ac_cv_have_dev_random" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_CRYPT_RNG 1
-_ACEOF
+$as_echo "#define HAVE_CRYPT_RNG 1" >>confdefs.h
 
     fi
 else
-    { $as_echo "$as_me:$LINENO: checking for random device" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for random device" >&5
 $as_echo_n "checking for random device... " >&6; }
     ac_cv_have_dev_random=no
-    { $as_echo "$as_me:$LINENO: result: has been disabled" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: has been disabled" >&5
 $as_echo "has been disabled" >&6; }
 fi
 
 if test "x$platform_win32" = "xyes"; then
-    cat >>confdefs.h <<\_ACEOF
-#define HAVE_CRYPT_RNG 1
-_ACEOF
+    $as_echo "#define HAVE_CRYPT_RNG 1" >>confdefs.h
 
 fi
 
 if test "x$ac_cv_have_dev_random" = "xno" \
     && test "x$platform_win32" = "xno"; then
-    { $as_echo "$as_me:$LINENO: WARNING:
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
 ***
 *** A system-provided entropy source was not found on this system.
 *** Because of this, the System.Security.Cryptography random number generator
@@ -31512,36 +17635,32 @@ $as_echo "$as_me: WARNING:
 ***" >&2;}
 fi
 
-{ $as_echo "$as_me:$LINENO: checking if inter-process shared handles are requested" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if inter-process shared handles are requested" >&5
 $as_echo_n "checking if inter-process shared handles are requested... " >&6; }
 # Check whether --enable-shared-handles was given.
-if test "${enable_shared_handles+set}" = set; then
+if test "${enable_shared_handles+set}" = set; then :
   enableval=$enable_shared_handles; try_shared_handles=$enableval
 else
   try_shared_handles=yes
 fi
 
-{ $as_echo "$as_me:$LINENO: result: $try_shared_handles" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $try_shared_handles" >&5
 $as_echo "$try_shared_handles" >&6; }
 if test "x$try_shared_handles" != "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define DISABLE_SHARED_HANDLES 1
-_ACEOF
+$as_echo "#define DISABLE_SHARED_HANDLES 1" >>confdefs.h
 
 
 fi
 
 if test x$gc = xsgen; then
    if test x$with_tls != x__thread; then
-	  { { $as_echo "$as_me:$LINENO: error: The SGEN garbage collector depends on a working __thread implementation, and either --with-thread=pthread was passed to configure, or the configure test for __thread failed." >&5
-$as_echo "$as_me: error: The SGEN garbage collector depends on a working __thread implementation, and either --with-thread=pthread was passed to configure, or the configure test for __thread failed." >&2;}
-   { (exit 1); exit 1; }; }
+	  as_fn_error "The SGEN garbage collector depends on a working __thread implementation, and either --with-thread=pthread was passed to configure, or the configure test for __thread failed." "$LINENO" 5
    fi
 fi
 
 # Check whether --enable-nunit-tests was given.
-if test "${enable_nunit_tests+set}" = set; then
+if test "${enable_nunit_tests+set}" = set; then :
   enableval=$enable_nunit_tests;
 fi
 
@@ -31554,10 +17673,10 @@ else
 fi
 
 
-{ $as_echo "$as_me:$LINENO: checking if big-arrays are to be enabled" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if big-arrays are to be enabled" >&5
 $as_echo_n "checking if big-arrays are to be enabled... " >&6; }
 # Check whether --enable-big-arrays was given.
-if test "${enable_big_arrays+set}" = set; then
+if test "${enable_big_arrays+set}" = set; then :
   enableval=$enable_big_arrays; enable_big_arrays=$enableval
 else
   enable_big_arrays=no
@@ -31566,22 +17685,18 @@ fi
 if test "x$enable_big_arrays" = "xyes" ; then
     if  test "x$ac_cv_sizeof_void_p" = "x8"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define MONO_BIG_ARRAYS 1
-_ACEOF
+$as_echo "#define MONO_BIG_ARRAYS 1" >>confdefs.h
 
     else
-        { { $as_echo "$as_me:$LINENO: error: The allocation and indexing of arrays greater than Int32.MaxValue is not supported on this platform." >&5
-$as_echo "$as_me: error: The allocation and indexing of arrays greater than Int32.MaxValue is not supported on this platform." >&2;}
-   { (exit 1); exit 1; }; }
+        as_fn_error "The allocation and indexing of arrays greater than Int32.MaxValue is not supported on this platform." "$LINENO" 5
     fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $enable_big_arrays" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_big_arrays" >&5
 $as_echo "$enable_big_arrays" >&6; }
 
 
 # Check whether --enable-dtrace was given.
-if test "${enable_dtrace+set}" = set; then
+if test "${enable_dtrace+set}" = set; then :
   enableval=$enable_dtrace; enable_dtrace=$enableval
 else
   enable_dtrace=$has_dtrace
@@ -31590,15 +17705,13 @@ fi
 
 if test "x$enable_dtrace" = "xyes"; then
    if test "x$has_dtrace" = "xno"; then
-   	  { { $as_echo "$as_me:$LINENO: error: DTrace probes are not supported on this platform." >&5
-$as_echo "$as_me: error: DTrace probes are not supported on this platform." >&2;}
-   { (exit 1); exit 1; }; }
+   	  as_fn_error "DTrace probes are not supported on this platform." "$LINENO" 5
    fi
    # Extract the first word of "dtrace", so it can be a program name with args.
 set dummy dtrace; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_path_DTRACE+set}" = set; then
+if test "${ac_cv_path_DTRACE+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $DTRACE in
@@ -31612,14 +17725,14 @@ for as_dir in $as_dummy
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_DTRACE="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
   test -z "$ac_cv_path_DTRACE" && ac_cv_path_DTRACE="no"
@@ -31628,20 +17741,20 @@ esac
 fi
 DTRACE=$ac_cv_path_DTRACE
 if test -n "$DTRACE"; then
-  { $as_echo "$as_me:$LINENO: result: $DTRACE" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DTRACE" >&5
 $as_echo "$DTRACE" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
 
    if test "x$DTRACE" = "xno"; then
-   	  { $as_echo "$as_me:$LINENO: result: dtrace utility not found, dtrace support disabled." >&5
+   	  { $as_echo "$as_me:${as_lineno-$LINENO}: result: dtrace utility not found, dtrace support disabled." >&5
 $as_echo "dtrace utility not found, dtrace support disabled." >&6; }
 	  enable_dtrace=no
    elif ! $DTRACE -h $srcdir/data/mono.d > /dev/null 2>&1; then
-	  { $as_echo "$as_me:$LINENO: result: dtrace doesn't support -h option, dtrace support disabled." >&5
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: result: dtrace doesn't support -h option, dtrace support disabled." >&5
 $as_echo "dtrace doesn't support -h option, dtrace support disabled." >&6; }
 	  enable_dtrace=no
    fi
@@ -31650,9 +17763,7 @@ fi
 dtrace_g=no
 if test "x$enable_dtrace" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define ENABLE_DTRACE 1
-_ACEOF
+$as_echo "#define ENABLE_DTRACE 1" >>confdefs.h
 
 	DTRACEFLAGS=
 	if test "x$ac_cv_sizeof_void_p" = "x8"; then
@@ -31686,146 +17797,12 @@ _ACEOF
 		dtrace_g=yes
 		;;
 	esac
-
-for ac_header in sys/sdt.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+	for ac_header in sys/sdt.h
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "sys/sdt.h" "ac_cv_header_sys_sdt_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_sdt_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_SYS_SDT_H 1
 _ACEOF
 
 fi
@@ -31877,13 +17854,9 @@ case "$host" in
 		JIT_SUPPORTED=yes
 		jit_wanted=true
 
-		{ $as_echo "$as_me:$LINENO: checking for mips n32" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for mips n32" >&5
 $as_echo_n "checking for mips n32... " >&6; }
-		cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+		cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -31900,39 +17873,18 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
-		{ $as_echo "$as_me:$LINENO: result: yes" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 		sizeof_register=8
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-
-		{ $as_echo "$as_me:$LINENO: result: no" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 		;;
 	i*86-*-*)
@@ -31977,19 +17929,14 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 		jit_wanted=true
 		LIBC="libc.so.6.1"
 		INTL="libc.so.6.1"
-
-{ $as_echo "$as_me:$LINENO: checking for _U_dyn_register in -lunwind" >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for _U_dyn_register in -lunwind" >&5
 $as_echo_n "checking for _U_dyn_register in -lunwind... " >&6; }
-if test "${ac_cv_lib_unwind__U_dyn_register+set}" = set; then
+if test "${ac_cv_lib_unwind__U_dyn_register+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lunwind  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -32007,43 +17954,18 @@ return _U_dyn_register ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_unwind__U_dyn_register=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_unwind__U_dyn_register=no
+  ac_cv_lib_unwind__U_dyn_register=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_unwind__U_dyn_register" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_unwind__U_dyn_register" >&5
 $as_echo "$ac_cv_lib_unwind__U_dyn_register" >&6; }
-if test "x$ac_cv_lib_unwind__U_dyn_register" = x""yes; then
+if test "x$ac_cv_lib_unwind__U_dyn_register" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LIBUNWIND 1
 _ACEOF
@@ -32051,9 +17973,7 @@ _ACEOF
   LIBS="-lunwind $LIBS"
 
 else
-  { { $as_echo "$as_me:$LINENO: error: library libunwind not found" >&5
-$as_echo "$as_me: error: library libunwind not found" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "library libunwind not found" "$LINENO" 5
 fi
 
 		libmono_ldflags="-lunwind"
@@ -32079,9 +17999,7 @@ fi
 			CFLAGS="$CFLAGS -Wno-cast-align -mcpu=v9"
 		fi
 		if test x"$AR" = xfalse; then
-			{ { $as_echo "$as_me:$LINENO: error: The required utility 'ar' is not found in your PATH. Usually it can be found in /usr/ccs/bin." >&5
-$as_echo "$as_me: error: The required utility 'ar' is not found in your PATH. Usually it can be found in /usr/ccs/bin." >&2;}
-   { (exit 1); exit 1; }; }
+			as_fn_error "The required utility 'ar' is not found in your PATH. Usually it can be found in /usr/ccs/bin." "$LINENO" 5
 		fi
 		;;
        alpha*-*-linux* | alpha*-*-osf*)
@@ -32113,9 +18031,7 @@ $as_echo "$as_me: error: The required utility 'ar' is not found in your PATH. Us
 	hppa*linux*)
 		TARGET=HPPA;
 
-cat >>confdefs.h <<\_ACEOF
-#define MONO_ARCH_REGPARMS 1
-_ACEOF
+$as_echo "#define MONO_ARCH_REGPARMS 1" >>confdefs.h
 
 		arch_target=hppa;
 		ACCESS_UNALIGNED="no"
@@ -32133,9 +18049,7 @@ _ACEOF
 			CPPFLAGS="$CPPFLAGS -D__mono_ppc__"
 		fi
 
-cat >>confdefs.h <<\_ACEOF
-#define MONO_ARCH_REGPARMS 1
-_ACEOF
+$as_echo "#define MONO_ARCH_REGPARMS 1" >>confdefs.h
 
 		arch_target=ppc;
 		JIT_SUPPORTED=yes
@@ -32159,9 +18073,7 @@ _ACEOF
 	s390-*-linux*)
 		TARGET=S390;
 
-cat >>confdefs.h <<\_ACEOF
-#define MONO_ARCH_REGPARMS 1
-_ACEOF
+$as_echo "#define MONO_ARCH_REGPARMS 1" >>confdefs.h
 
 		arch_target=s390;
 		ACCESS_UNALIGNED="no"
@@ -32173,9 +18085,7 @@ _ACEOF
 	s390x-*-linux*)
 		TARGET=S390x;
 
-cat >>confdefs.h <<\_ACEOF
-#define MONO_ARCH_REGPARMS 1
-_ACEOF
+$as_echo "#define MONO_ARCH_REGPARMS 1" >>confdefs.h
 
 		arch_target=s390x;
 		ACCESS_UNALIGNED="no"
@@ -32189,58 +18099,44 @@ esac
 case "$TARGET" in
 X86)
 
-cat >>confdefs.h <<\_ACEOF
-#define TARGET_X86 1
-_ACEOF
+$as_echo "#define TARGET_X86 1" >>confdefs.h
 
 	;;
 AMD64)
 
-cat >>confdefs.h <<\_ACEOF
-#define TARGET_AMD64 1
-_ACEOF
+$as_echo "#define TARGET_AMD64 1" >>confdefs.h
 
 	;;
 ARM)
 
-cat >>confdefs.h <<\_ACEOF
-#define TARGET_ARM 1
-_ACEOF
+$as_echo "#define TARGET_ARM 1" >>confdefs.h
 
 	;;
 esac
 
 if test "x$sizeof_register" = "x4"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define SIZEOF_REGISTER 4
-_ACEOF
+$as_echo "#define SIZEOF_REGISTER 4" >>confdefs.h
 
 elif test "x$sizeof_register" = "x8"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define SIZEOF_REGISTER 8
-_ACEOF
+$as_echo "#define SIZEOF_REGISTER 8" >>confdefs.h
 
 else
 
-cat >>confdefs.h <<\_ACEOF
-#define SIZEOF_REGISTER SIZEOF_VOID_P
-_ACEOF
+$as_echo "#define SIZEOF_REGISTER SIZEOF_VOID_P" >>confdefs.h
 
 fi
 
 if test "x$have_visibility_hidden" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_VISIBILITY_HIDDEN 1
-_ACEOF
+$as_echo "#define HAVE_VISIBILITY_HIDDEN 1" >>confdefs.h
 
 fi
 
 
 # Check whether --with-jit was given.
-if test "${with_jit+set}" = set; then
+if test "${with_jit+set}" = set; then :
   withval=$with_jit;
 	if test x$withval = xyes; then
 	   jit_wanted=true
@@ -32253,7 +18149,7 @@ fi
 
 
 # Check whether --with-interp was given.
-if test "${with_interp+set}" = set; then
+if test "${with_interp+set}" = set; then :
   withval=$with_interp;
 	if test x$withval = xyes; then
 	   interp_wanted=true
@@ -32273,18 +18169,14 @@ if test x$JIT_SUPPORTED = xyes; then
       if $interp_wanted; then
          jit_status="Building the JIT, defaulting to the interpreter"
       else
-         { { $as_echo "$as_me:$LINENO: error: No JIT or interpreter support available or selected." >&5
-$as_echo "$as_me: error: No JIT or interpreter support available or selected." >&2;}
-   { (exit 1); exit 1; }; }
+         as_fn_error "No JIT or interpreter support available or selected." "$LINENO" 5
       fi
    fi
 else
    if test x$interp_wanted = xtrue; then
       jit_status="interpreter"
    else
-      { { $as_echo "$as_me:$LINENO: error: No JIT or interpreter support available or selected." >&5
-$as_echo "$as_me: error: No JIT or interpreter support available or selected." >&2;}
-   { (exit 1); exit 1; }; }
+      as_fn_error "No JIT or interpreter support available or selected." "$LINENO" 5
    fi
 fi
 
@@ -32321,12 +18213,12 @@ case "$host" in
 	INTL="libintl.so"
 	;;
     *-*-*linux*)
-	{ $as_echo "$as_me:$LINENO: checking for X" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5
 $as_echo_n "checking for X... " >&6; }
 
 
 # Check whether --with-x was given.
-if test "${with_x+set}" = set; then
+if test "${with_x+set}" = set; then :
   withval=$with_x;
 fi
 
@@ -32336,10 +18228,8 @@ if test "x$with_x" = xno; then
   have_x=disabled
 else
   case $x_includes,$x_libraries in #(
-    *\'*) { { $as_echo "$as_me:$LINENO: error: cannot use X directory names containing '" >&5
-$as_echo "$as_me: error: cannot use X directory names containing '" >&2;}
-   { (exit 1); exit 1; }; };; #(
-    *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then
+    *\'*) as_fn_error "cannot use X directory names containing '" "$LINENO" 5;; #(
+    *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   # One or both of the vars are not set, and there is no cached value.
@@ -32387,21 +18277,25 @@ fi
 # Check X11 before X11Rn because it is often a symlink to the current release.
 ac_x_header_dirs='
 /usr/X11/include
+/usr/X11R7/include
 /usr/X11R6/include
 /usr/X11R5/include
 /usr/X11R4/include
 
 /usr/include/X11
+/usr/include/X11R7
 /usr/include/X11R6
 /usr/include/X11R5
 /usr/include/X11R4
 
 /usr/local/X11/include
+/usr/local/X11R7/include
 /usr/local/X11R6/include
 /usr/local/X11R5/include
 /usr/local/X11R4/include
 
 /usr/local/include/X11
+/usr/local/include/X11R7
 /usr/local/include/X11R6
 /usr/local/include/X11R5
 /usr/local/include/X11R4
@@ -32423,37 +18317,14 @@ ac_x_header_dirs='
 if test "$ac_x_includes" = no; then
   # Guess where to find include files, by looking for Xlib.h.
   # First, try using that file with no special directory specified.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <X11/Xlib.h>
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
+if ac_fn_c_try_cpp "$LINENO"; then :
   # We can compile using X headers with no special include directory.
 ac_x_includes=
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
   for ac_dir in $ac_x_header_dirs; do
   if test -r "$ac_dir/X11/Xlib.h"; then
     ac_x_includes=$ac_dir
@@ -32461,7 +18332,6 @@ sed 's/^/| /' conftest.$ac_ext >&5
   fi
 done
 fi
-
 rm -f conftest.err conftest.$ac_ext
 fi # $ac_x_includes = no
 
@@ -32471,11 +18341,7 @@ if test "$ac_x_libraries" = no; then
   # Don't add to $LIBS permanently.
   ac_save_LIBS=$LIBS
   LIBS="-lX11 $LIBS"
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <X11/Xlib.h>
 int
@@ -32486,35 +18352,12 @@ XrmInitialize ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   LIBS=$ac_save_LIBS
 # We can link X programs with no special library path.
 ac_x_libraries=
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	LIBS=$ac_save_LIBS
+  LIBS=$ac_save_LIBS
 for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
 do
   # Don't even attempt the hair of trying to link an X program!
@@ -32526,10 +18369,8 @@ do
   done
 done
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 fi # $ac_x_libraries = no
 
 case $ac_x_includes,$ac_x_libraries in #(
@@ -32550,7 +18391,7 @@ fi
 fi # $with_x != no
 
 if test "$have_x" != yes; then
-  { $as_echo "$as_me:$LINENO: result: $have_x" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5
 $as_echo "$have_x" >&6; }
   no_x=yes
 else
@@ -32561,24 +18402,24 @@ else
   ac_cv_have_x="have_x=yes\
 	ac_x_includes='$x_includes'\
 	ac_x_libraries='$x_libraries'"
-  { $as_echo "$as_me:$LINENO: result: libraries $x_libraries, headers $x_includes" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5
 $as_echo "libraries $x_libraries, headers $x_includes" >&6; }
 fi
 
-	{ $as_echo "$as_me:$LINENO: checking for the soname of libX11.so" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for the soname of libX11.so" >&5
 $as_echo_n "checking for the soname of libX11.so... " >&6; }
 	for i in $x_libraries /usr/lib /usr/lib64; do
 		for r in 4 5 6; do
 			if test -f $i/libX11.so.$r; then
 				X11=libX11.so.$r
-				{ $as_echo "$as_me:$LINENO: result: $X11" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $X11" >&5
 $as_echo "$X11" >&6; }
 			fi
 		done
 	done
 
 	if test "x$X11" = "xlibX11.so"; then
-		{ $as_echo "$as_me:$LINENO: WARNING: Could not find X development libs. Do you have the -devel package installed? WinForms may not work..." >&5
+		{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Could not find X development libs. Do you have the -devel package installed? WinForms may not work..." >&5
 $as_echo "$as_me: WARNING: Could not find X development libs. Do you have the -devel package installed? WinForms may not work..." >&2;};
 	fi
 	;;
@@ -32587,146 +18428,12 @@ esac
 
 
 
-
 for ac_header in valgrind/memcheck.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
-$as_echo_n "checking $ac_header usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
-$as_echo_n "checking $ac_header presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <$ac_header>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
-
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  eval "$as_ac_Header=\$ac_header_preproc"
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-
-fi
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  ac_fn_c_check_header_mongrel "$LINENO" "valgrind/memcheck.h" "ac_cv_header_valgrind_memcheck_h" "$ac_includes_default"
+if test "x$ac_cv_header_valgrind_memcheck_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_VALGRIND_MEMCHECK_H 1
 _ACEOF
 
 fi
@@ -32746,7 +18453,7 @@ if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86"; then
 		$CC -fPIC --shared -o conftest.so conftest.c > /dev/null 2>&1
 		$CC -o conftest conftest.so > /dev/null 2>&1
 		if test ! -f conftest; then
-		   { $as_echo "$as_me:$LINENO: WARNING: Disabling usage of __thread." >&5
+		   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Disabling usage of __thread." >&5
 $as_echo "$as_me: WARNING: Disabling usage of __thread." >&2;};
 		   with_tls=pthread
 		fi
@@ -32765,16 +18472,14 @@ if test "x$TARGET" = "xAMD64" -o "x$TARGET" = "xX86" -o "x$TARGET" = "xALPHA"; t
 	fi
 fi
 
-{ $as_echo "$as_me:$LINENO: checking if the Mono Debugger is supported on this platform" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the Mono Debugger is supported on this platform" >&5
 $as_echo_n "checking if the Mono Debugger is supported on this platform... " >&6; }
 if test "x$mono_debugger_supported" = "xyes"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define MONO_DEBUGGER_SUPPORTED 1
-_ACEOF
+$as_echo "#define MONO_DEBUGGER_SUPPORTED 1" >>confdefs.h
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $mono_debugger_supported" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $mono_debugger_supported" >&5
 $as_echo "$mono_debugger_supported" >&6; }
  if test x$mono_debugger_supported = xyes; then
   MONO_DEBUGGER_SUPPORTED_TRUE=
@@ -32787,19 +18492,13 @@ fi
 
 if test "x$with_tls" = "x__thread"; then
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_KW_THREAD 1
-_ACEOF
+$as_echo "#define HAVE_KW_THREAD 1" >>confdefs.h
 
 	# Pass the information to libgc
 	CPPFLAGS="$CPPFLAGS -DUSE_COMPILER_TLS"
-	{ $as_echo "$as_me:$LINENO: checking if the tls_model attribute is supported" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the tls_model attribute is supported" >&5
 $as_echo_n "checking if the tls_model attribute is supported... " >&6; }
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 static __thread int foo __attribute__((tls_model("initial-exec")));
 int
@@ -32811,55 +18510,28 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
 
-			{ $as_echo "$as_me:$LINENO: result: yes" >&5
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_TLS_MODEL_ATTR 1
-_ACEOF
+$as_echo "#define HAVE_TLS_MODEL_ATTR 1" >>confdefs.h
 
 
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
 
-
-			{ $as_echo "$as_me:$LINENO: result: no" >&5
+			{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
 
 if test ${TARGET} = ARM && test x$cross_compiling = xno && test x$enable_mcs_build != xno; then
-				{ $as_echo "$as_me:$LINENO: checking which FPU to use" >&5
+				{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which FPU to use" >&5
 $as_echo_n "checking which FPU to use... " >&6; }
 
-	cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -32872,35 +18544,14 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   fpu=FPA
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	fpu=NONE
+  fpu=NONE
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
-	{ $as_echo "$as_me:$LINENO: result: $fpu" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $fpu" >&5
 $as_echo "$fpu" >&6; }
 	CPPFLAGS="$CPPFLAGS -DARM_FPU_$fpu=1"
 	unset fpu
@@ -32908,7 +18559,7 @@ fi
 
 if test ${TARGET} = unknown; then
 	CPPFLAGS="$CPPFLAGS -DNO_PORT"
-	{ $as_echo "$as_me:$LINENO: WARNING: \"mono has not been ported to $host: some things may not work.\"" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"mono has not been ported to $host: some things may not work.\"" >&5
 $as_echo "$as_me: WARNING: \"mono has not been ported to $host: some things may not work.\"" >&2;}
 fi
 
@@ -32938,7 +18589,7 @@ esac
 PREVIEW=yes
 
 # Check whether --with-preview was given.
-if test "${with_preview+set}" = set; then
+if test "${with_preview+set}" = set; then :
   withval=$with_preview;
 	if test x$with_preview = xno; then
 	      PREVIEW=no
@@ -32950,7 +18601,7 @@ fi
 MOONLIGHT=yes
 
 # Check whether --with-moonlight was given.
-if test "${with_moonlight+set}" = set; then
+if test "${with_moonlight+set}" = set; then :
   withval=$with_moonlight;
 	if test x$with_moonlight = xno; then
 	      MOONLIGHT=no
@@ -32962,22 +18613,18 @@ fi
 OPROFILE=no
 
 # Check whether --with-oprofile was given.
-if test "${with_oprofile+set}" = set; then
+if test "${with_oprofile+set}" = set; then :
   withval=$with_oprofile;
 	if test x$with_oprofile != xno; then
 	    oprofile_include=$with_oprofile/include
 	    if test ! -f $oprofile_include/opagent.h; then
-	   	  { { $as_echo "$as_me:$LINENO: error: oprofile include file not found at $oprofile_include/opagent.h" >&5
-$as_echo "$as_me: error: oprofile include file not found at $oprofile_include/opagent.h" >&2;}
-   { (exit 1); exit 1; }; }
+	   	  as_fn_error "oprofile include file not found at $oprofile_include/opagent.h" "$LINENO" 5
 		fi
 	    OPROFILE=yes
 		OPROFILE_CFLAGS="-I$oprofile_include"
 	    OPROFILE_LIBS="-L$with_oprofile/lib/oprofile -lopagent"
 
-cat >>confdefs.h <<\_ACEOF
-#define HAVE_OPROFILE 1
-_ACEOF
+$as_echo "#define HAVE_OPROFILE 1" >>confdefs.h
 
 	fi
 
@@ -32987,14 +18634,12 @@ fi
 MALLOC_MEMPOOLS=no
 
 # Check whether --with-malloc_mempools was given.
-if test "${with_malloc_mempools+set}" = set; then
+if test "${with_malloc_mempools+set}" = set; then :
   withval=$with_malloc_mempools;
 	if test x$with_malloc_mempools = xyes; then
 		MALLOC_MEMPOOLS=yes
 
-cat >>confdefs.h <<\_ACEOF
-#define USE_MALLOC_FOR_MEMPOOLS 1
-_ACEOF
+$as_echo "#define USE_MALLOC_FOR_MEMPOOLS 1" >>confdefs.h
 
 	fi
 
@@ -33215,7 +18860,7 @@ if test x$platform_win32 = xyes; then
   if test "x$cross_compiling" = "xno"; then
     mono_cfg_dir=`cygpath -w -a $mono_cfg_root`\\etc
   else
-    mono_cfg_dir=`echo $mono_cfg_root | tr '/' '\\\'`\\etc
+    mono_cfg_dir=`echo $mono_cfg_root | tr '/' '\\'`\\etc
   fi
 else
   mono_cfg_dir=$mono_cfg_root/etc
@@ -33281,13 +18926,13 @@ _ACEOF
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
       BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) $as_unset $ac_var ;;
+      *) { eval $ac_var=; unset $ac_var;} ;;
       esac ;;
     esac
   done
@@ -33295,8 +18940,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
   (set) 2>&1 |
     case $as_nl`(ac_space=' '; set) 2>&1` in #(
     *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      # `set' does not quote correctly, so add quotes: double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \.
       sed -n \
 	"s/'/'\\\\''/g;
 	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
@@ -33319,11 +18964,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
   if test -w "$cache_file"; then
     test "x$cache_file" != "x/dev/null" &&
-      { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
 $as_echo "$as_me: updating cache $cache_file" >&6;}
     cat confcache >$cache_file
   else
-    { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
   fi
 fi
@@ -33343,330 +18988,207 @@ for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
   # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
   #    will be set to the directory where LIBOBJS objects are built.
-  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
+  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
 done
 LIBOBJS=$ac_libobjs
 
 LTLIBOBJS=$ac_ltlibobjs
 
 
+ if test -n "$EXEEXT"; then
+  am__EXEEXT_TRUE=
+  am__EXEEXT_FALSE='#'
+else
+  am__EXEEXT_TRUE='#'
+  am__EXEEXT_FALSE=
+fi
+
 if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${PLATFORM_WIN32_TRUE}" && test -z "${PLATFORM_WIN32_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"PLATFORM_WIN32\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"PLATFORM_WIN32\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"PLATFORM_WIN32\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${PLATFORM_LINUX_TRUE}" && test -z "${PLATFORM_LINUX_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"PLATFORM_LINUX\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"PLATFORM_LINUX\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"PLATFORM_LINUX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCCAS\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"am__fastdepCCAS\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"am__fastdepCCAS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${CROSS_COMPILING_TRUE}" && test -z "${CROSS_COMPILING_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"CROSS_COMPILING\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"CROSS_COMPILING\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"CROSS_COMPILING\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${USE_BATCH_FILES_TRUE}" && test -z "${USE_BATCH_FILES_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"USE_BATCH_FILES\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"USE_BATCH_FILES\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"USE_BATCH_FILES\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${NO_VERSION_SCRIPT_TRUE}" && test -z "${NO_VERSION_SCRIPT_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"NO_VERSION_SCRIPT\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"NO_VERSION_SCRIPT\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"NO_VERSION_SCRIPT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${HAVE_ZLIB_TRUE}" && test -z "${HAVE_ZLIB_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_ZLIB\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"HAVE_ZLIB\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"HAVE_ZLIB\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${BUILD_MCS_TRUE}" && test -z "${BUILD_MCS_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_MCS\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"BUILD_MCS\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"BUILD_MCS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${EGLIB_BUILD_TRUE}" && test -z "${EGLIB_BUILD_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"EGLIB_BUILD\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"EGLIB_BUILD\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"EGLIB_BUILD\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${STATIC_MONO_TRUE}" && test -z "${STATIC_MONO_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"STATIC_MONO\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"STATIC_MONO\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"STATIC_MONO\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${DISABLE_PROFILER_TRUE}" && test -z "${DISABLE_PROFILER_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"DISABLE_PROFILER\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"DISABLE_PROFILER\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"DISABLE_PROFILER\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${DISABLE_JIT_TRUE}" && test -z "${DISABLE_JIT_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"DISABLE_JIT\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"DISABLE_JIT\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"DISABLE_JIT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${INCLUDED_LIBGC_TRUE}" && test -z "${INCLUDED_LIBGC_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"INCLUDED_LIBGC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"INCLUDED_LIBGC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"INCLUDED_LIBGC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${ENABLE_NUNIT_TESTS_TRUE}" && test -z "${ENABLE_NUNIT_TESTS_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_NUNIT_TESTS\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"ENABLE_NUNIT_TESTS\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"ENABLE_NUNIT_TESTS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${ENABLE_DTRACE_TRUE}" && test -z "${ENABLE_DTRACE_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_DTRACE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"ENABLE_DTRACE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"ENABLE_DTRACE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${DTRACE_G_REQUIRED_TRUE}" && test -z "${DTRACE_G_REQUIRED_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"DTRACE_G_REQUIRED\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"DTRACE_G_REQUIRED\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"DTRACE_G_REQUIRED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${USE_JIT_TRUE}" && test -z "${USE_JIT_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"USE_JIT\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"USE_JIT\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"USE_JIT\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${MONO_DEBUGGER_SUPPORTED_TRUE}" && test -z "${MONO_DEBUGGER_SUPPORTED_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"MONO_DEBUGGER_SUPPORTED\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"MONO_DEBUGGER_SUPPORTED\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"MONO_DEBUGGER_SUPPORTED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${HAVE_OPROFILE_TRUE}" && test -z "${HAVE_OPROFILE_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_OPROFILE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"HAVE_OPROFILE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"HAVE_OPROFILE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${INSTALL_2_0_TRUE}" && test -z "${INSTALL_2_0_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"INSTALL_2_0\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"INSTALL_2_0\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"INSTALL_2_0\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${INSTALL_2_1_TRUE}" && test -z "${INSTALL_2_1_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"INSTALL_2_1\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"INSTALL_2_1\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"INSTALL_2_1\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${MIPS_GCC_TRUE}" && test -z "${MIPS_GCC_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"MIPS_GCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"MIPS_GCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"MIPS_GCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${MIPS_SGI_TRUE}" && test -z "${MIPS_SGI_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"MIPS_SGI\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"MIPS_SGI\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"MIPS_SGI\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${SPARC_TRUE}" && test -z "${SPARC_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"SPARC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"SPARC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"SPARC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${SPARC64_TRUE}" && test -z "${SPARC64_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"SPARC64\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"SPARC64\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"SPARC64\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${X86_TRUE}" && test -z "${X86_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"X86\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"X86\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"X86\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${AMD64_TRUE}" && test -z "${AMD64_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"AMD64\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"AMD64\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"AMD64\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${ALPHA_TRUE}" && test -z "${ALPHA_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"ALPHA\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"ALPHA\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"ALPHA\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${IA64_TRUE}" && test -z "${IA64_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"IA64\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"IA64\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"IA64\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${M68K_TRUE}" && test -z "${M68K_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"M68K\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"M68K\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"M68K\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${MIPS_TRUE}" && test -z "${MIPS_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"MIPS\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"MIPS\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"MIPS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${POWERPC_TRUE}" && test -z "${POWERPC_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"POWERPC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"POWERPC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"POWERPC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${POWERPC64_TRUE}" && test -z "${POWERPC64_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"POWERPC64\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"POWERPC64\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"POWERPC64\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${ARM_TRUE}" && test -z "${ARM_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"ARM\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"ARM\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"ARM\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${S390_TRUE}" && test -z "${S390_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"S390\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"S390\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"S390\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${S390x_TRUE}" && test -z "${S390x_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"S390x\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"S390x\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"S390x\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${HPPA_TRUE}" && test -z "${HPPA_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"HPPA\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"HPPA\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"HPPA\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${JIT_SUPPORTED_TRUE}" && test -z "${JIT_SUPPORTED_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"JIT_SUPPORTED\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"JIT_SUPPORTED\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"JIT_SUPPORTED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${INTERP_SUPPORTED_TRUE}" && test -z "${INTERP_SUPPORTED_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"INTERP_SUPPORTED\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"INTERP_SUPPORTED\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"INTERP_SUPPORTED\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${INCLUDED_LIBGC_TRUE}" && test -z "${INCLUDED_LIBGC_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"INCLUDED_LIBGC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"INCLUDED_LIBGC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"INCLUDED_LIBGC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 
 : ${CONFIG_STATUS=./config.status}
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
 #! $SHELL
 # Generated by $as_me.
 # Run this file to recreate the current configuration.
@@ -33676,17 +19198,18 @@ cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 debug=false
 ac_cs_recheck=false
 ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
@@ -33694,23 +19217,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
 esac
-
 fi
 
 
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
 as_nl='
 '
 export as_nl
@@ -33718,7 +19233,13 @@ export as_nl
 as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
   as_echo='printf %s\n'
   as_echo_n='printf %s'
 else
@@ -33729,7 +19250,7 @@ else
     as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
     as_echo_n_body='eval
       arg=$1;
-      case $arg in
+      case $arg in #(
       *"$as_nl"*)
 	expr "X$arg" : "X\\(.*\\)$as_nl";
 	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
@@ -33752,13 +19273,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
   }
 fi
 
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
 
 # IFS
 # We need space, tab and new line, in precisely that order.  Quoting is
@@ -33768,15 +19282,15 @@ fi
 IFS=" ""	$as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
+case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
 IFS=$as_save_IFS
 
      ;;
@@ -33788,12 +19302,16 @@ if test "x$as_myself" = x; then
 fi
 if test ! -f "$as_myself"; then
   $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
+  exit 1
 fi
 
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
 done
 PS1='$ '
 PS2='> '
@@ -33805,7 +19323,89 @@ export LC_ALL
 LANGUAGE=C
 export LANGUAGE
 
-# Required to use basename.
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with status $?, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$?; test $as_status -eq 0 && as_status=1
+  if test "$3"; then
+    as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+  fi
+  $as_echo "$as_me: error: $1" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
 if expr a : '\(a\)' >/dev/null 2>&1 &&
    test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
@@ -33819,8 +19419,12 @@ else
   as_basename=false
 fi
 
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
 
-# Name of the executable.
 as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
@@ -33840,76 +19444,25 @@ $as_echo X/"$0" |
 	  }
 	  s/.*/./; q'`
 
-# CDPATH.
-$as_unset CDPATH
-
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  Blame Lee
-  # E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
 
 ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
+case `echo -n x` in #(((((
 -n*)
-  case `echo 'x\c'` in
+  case `echo 'xy\c'` in
   *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
   esac;;
 *)
   ECHO_N='-n';;
 esac
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
 
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
@@ -33938,8 +19491,56 @@ fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
 
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
 if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
+  as_mkdir_p='mkdir -p "$as_dir"'
 else
   test -d ./-p && rmdir ./-p
   as_mkdir_p=false
@@ -33958,10 +19559,10 @@ else
       if test -d "$1"; then
 	test -d "$1/.";
       else
-	case $1 in
+	case $1 in #(
 	-*)set "./$1";;
 	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
 	???[sx]*):;;*)false;;esac;fi
     '\'' sh
   '
@@ -33976,13 +19577,19 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
 exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
 
-# Save the log message, to keep $[0] and so on meaningful, and to
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
 This file was extended by $as_me, which was
-generated by GNU Autoconf 2.63.  Invocation command line was
+generated by GNU Autoconf 2.64.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -34014,10 +19621,11 @@ _ACEOF
 
 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration.  Unless the files
+and actions are specified as TAGs, all are instantiated by default.
 
-Usage: $0 [OPTION]... [FILE]...
+Usage: $0 [OPTION]... [TAG]...
 
   -h, --help       print this help, then exit
   -V, --version    print version number and configuration settings, then exit
@@ -34039,16 +19647,16 @@ $config_headers
 Configuration commands:
 $config_commands
 
-Report bugs to <bug-autoconf at gnu.org>."
+Report bugs to the package provider."
 
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
 config.status
-configured by $0, generated by GNU Autoconf 2.63,
+configured by $0, generated by GNU Autoconf 2.64,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
-Copyright (C) 2008 Free Software Foundation, Inc.
+Copyright (C) 2009 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -34091,20 +19699,19 @@ do
     case $ac_optarg in
     *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
-    CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"
+    as_fn_append CONFIG_FILES " '$ac_optarg'"
     ac_need_defaults=false;;
   --header | --heade | --head | --hea )
     $ac_shift
     case $ac_optarg in
     *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
-    CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'"
+    as_fn_append CONFIG_HEADERS " '$ac_optarg'"
     ac_need_defaults=false;;
   --he | --h)
     # Conflict between --help and --header
-    { $as_echo "$as_me: error: ambiguous option: $1
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; };;
+    as_fn_error "ambiguous option: \`$1'
+Try \`$0 --help' for more information.";;
   --help | --hel | -h )
     $as_echo "$ac_cs_usage"; exit ;;
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
@@ -34112,11 +19719,10 @@ Try \`$0 --help' for more information." >&2
     ac_cs_silent=: ;;
 
   # This is an error.
-  -*) { $as_echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; } ;;
+  -*) as_fn_error "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
 
-  *) ac_config_targets="$ac_config_targets $1"
+  *) as_fn_append ac_config_targets " $1"
      ac_need_defaults=false ;;
 
   esac
@@ -34521,9 +20127,7 @@ do
     "msvc/Makefile") CONFIG_FILES="$CONFIG_FILES msvc/Makefile" ;;
     "po/Makefile") CONFIG_FILES="$CONFIG_FILES po/Makefile" ;;
 
-  *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
+  *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
 done
 
@@ -34550,7 +20154,7 @@ $debug ||
   trap 'exit_status=$?
   { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
 ' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
+  trap 'as_fn_exit 1' 1 2 13 15
 }
 # Create a (secure) tmp directory for tmp files.
 
@@ -34561,11 +20165,7 @@ $debug ||
 {
   tmp=./conf$$-$RANDOM
   (umask 077 && mkdir "$tmp")
-} ||
-{
-   $as_echo "$as_me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
+} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
 
 # Set up the scripts for CONFIG_FILES section.
 # No need to generate them if there are no CONFIG_FILES.
@@ -34573,10 +20173,16 @@ $debug ||
 if test -n "$CONFIG_FILES"; then
 
 
-ac_cr='
'
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+  eval ac_cr=\$\'\\r\'
+fi
 ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
 if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
-  ac_cs_awk_cr='\\r'
+  ac_cs_awk_cr='\r'
 else
   ac_cs_awk_cr=$ac_cr
 fi
@@ -34590,24 +20196,18 @@ _ACEOF
   echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
   echo "_ACEOF"
 } >conf$$subs.sh ||
-  { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
 ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   . ./conf$$subs.sh ||
-    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
 
   ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
   if test $ac_delim_n = $ac_delim_num; then
     break
   elif $ac_last_try; then
-    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
   else
     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
@@ -34696,9 +20296,7 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
 else
   cat
 fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
-  || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5
-$as_echo "$as_me: error: could not setup config files machinery" >&2;}
-   { (exit 1); exit 1; }; }
+  || as_fn_error "could not setup config files machinery" "$LINENO" 5
 _ACEOF
 
 # VPATH may cause trouble with some makes, so we remove $(srcdir),
@@ -34739,9 +20337,7 @@ for ac_last_try in false false :; do
   if test -z "$ac_t"; then
     break
   elif $ac_last_try; then
-    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "could not make $CONFIG_HEADERS" "$LINENO" 5
   else
     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
@@ -34826,9 +20422,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 _ACAWK
 _ACEOF
 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-  { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5
-$as_echo "$as_me: error: could not setup config headers machinery" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "could not setup config headers machinery" "$LINENO" 5
 fi # test -n "$CONFIG_HEADERS"
 
 
@@ -34841,9 +20435,7 @@ do
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5
-$as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
-   { (exit 1); exit 1; }; };;
+  :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
   esac
@@ -34871,12 +20463,10 @@ $as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
 	   [\\/$]*) false;;
 	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
 	   esac ||
-	   { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
-$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
-   { (exit 1); exit 1; }; };;
+	   as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
       esac
       case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
-      ac_file_inputs="$ac_file_inputs '$ac_f'"
+      as_fn_append ac_file_inputs " '$ac_f'"
     done
 
     # Let's still pretend it is `configure' which instantiates (i.e., don't
@@ -34887,7 +20477,7 @@ $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
 	`' by configure.'
     if test x"$ac_file" != x-; then
       configure_input="$ac_file.  $configure_input"
-      { $as_echo "$as_me:$LINENO: creating $ac_file" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
 $as_echo "$as_me: creating $ac_file" >&6;}
     fi
     # Neutralize special characters interpreted by sed in replacement strings.
@@ -34900,9 +20490,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
 
     case $ac_tag in
     *:-:* | *:-) cat >"$tmp/stdin" \
-      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; } ;;
+      || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
     esac
     ;;
   esac
@@ -34930,47 +20518,7 @@ $as_echo X"$ac_file" |
 	    q
 	  }
 	  s/.*/./; q'`
-  { as_dir="$ac_dir"
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
-   { (exit 1); exit 1; }; }; }
+  as_dir="$ac_dir"; as_fn_mkdir_p
   ac_builddir=.
 
 case "$ac_dir" in
@@ -35027,7 +20575,6 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # If the template does not know about datarootdir, expand it.
 # FIXME: This hack should be removed a few years after 2.60.
 ac_datarootdir_hack=; ac_datarootdir_seen=
-
 ac_sed_dataroot='
 /datarootdir/ {
   p
@@ -35037,12 +20584,11 @@ ac_sed_dataroot='
 /@docdir@/p
 /@infodir@/p
 /@localedir@/p
-/@mandir@/p
-'
+/@mandir@/p'
 case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
 *datarootdir*) ac_datarootdir_seen=yes;;
 *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
@@ -35052,7 +20598,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
   s&@infodir@&$infodir&g
   s&@localedir@&$localedir&g
   s&@mandir@&$mandir&g
-    s&\\\${datarootdir}&$datarootdir&g' ;;
+  s&\\\${datarootdir}&$datarootdir&g' ;;
 esac
 _ACEOF
 
@@ -35081,14 +20627,12 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t
 $ac_datarootdir_hack
 "
 eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
-  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
+  || as_fn_error "could not create $ac_file" "$LINENO" 5
 
 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
   { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
   { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
-  { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined." >&5
 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined." >&2;}
@@ -35098,9 +20642,7 @@ which seems to be undefined.  Please make sure it is defined." >&2;}
   -) cat "$tmp/out" && rm -f "$tmp/out";;
   *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
   esac \
-  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
+  || as_fn_error "could not create $ac_file" "$LINENO" 5
  ;;
   :H)
   #
@@ -35111,25 +20653,19 @@ $as_echo "$as_me: error: could not create $ac_file" >&2;}
       $as_echo "/* $configure_input  */" \
       && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
     } >"$tmp/config.h" \
-      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
+      || as_fn_error "could not create $ac_file" "$LINENO" 5
     if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
-      { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
 $as_echo "$as_me: $ac_file is unchanged" >&6;}
     else
       rm -f "$ac_file"
       mv "$tmp/config.h" "$ac_file" \
-	|| { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
+	|| as_fn_error "could not create $ac_file" "$LINENO" 5
     fi
   else
     $as_echo "/* $configure_input  */" \
       && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
-      || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5
-$as_echo "$as_me: error: could not create -" >&2;}
-   { (exit 1); exit 1; }; }
+      || as_fn_error "could not create -" "$LINENO" 5
   fi
 # Compute "$ac_file"'s index in $config_headers.
 _am_arg="$ac_file"
@@ -35167,25 +20703,35 @@ $as_echo X"$_am_arg" |
 	  s/.*/./; q'`/stamp-h$_am_stamp_count
  ;;
 
-  :C)  { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5
+  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
 $as_echo "$as_me: executing $ac_file commands" >&6;}
  ;;
   esac
 
 
   case $ac_file$ac_mode in
-    "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
-  # Strip MF so we end up with the name of the file.
-  mf=`echo "$mf" | sed -e 's/:.*$//'`
-  # Check whether this is an Automake generated Makefile or not.
-  # We used to match only the files named `Makefile.in', but
-  # some people rename them; so instead we look at the file content.
-  # Grep'ing the first line is not enough: some people post-process
-  # each Makefile.in and add a new line on top of each file to say so.
-  # Grep'ing the whole file is not good either: AIX grep has a line
-  # limit of 2048, but all sed's we know have understand at least 4000.
-  if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-    dirpart=`$as_dirname -- "$mf" ||
+    "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # are listed without --file.  Let's play safe and only enable the eval
+  # if we detect the quoting.
+  case $CONFIG_FILES in
+  *\'*) eval set x "$CONFIG_FILES" ;;
+  *)   set x $CONFIG_FILES ;;
+  esac
+  shift
+  for mf
+  do
+    # Strip MF so we end up with the name of the file.
+    mf=`echo "$mf" | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile or not.
+    # We used to match only the files named `Makefile.in', but
+    # some people rename them; so instead we look at the file content.
+    # Grep'ing the first line is not enough: some people post-process
+    # each Makefile.in and add a new line on top of each file to say so.
+    # Grep'ing the whole file is not good either: AIX grep has a line
+    # limit of 2048, but all sed's we know have understand at least 4000.
+    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+      dirpart=`$as_dirname -- "$mf" ||
 $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$mf" : 'X\(//\)[^/]' \| \
 	 X"$mf" : 'X\(//\)$' \| \
@@ -35208,28 +20754,28 @@ $as_echo X"$mf" |
 	    q
 	  }
 	  s/.*/./; q'`
-  else
-    continue
-  fi
-  # Extract the definition of DEPDIR, am__include, and am__quote
-  # from the Makefile without running `make'.
-  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-  test -z "$DEPDIR" && continue
-  am__include=`sed -n 's/^am__include = //p' < "$mf"`
-  test -z "am__include" && continue
-  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-  # When using ansi2knr, U may be empty or an underscore; expand it
-  U=`sed -n 's/^U = //p' < "$mf"`
-  # Find all dependency output files, they are included files with
-  # $(DEPDIR) in their names.  We invoke sed twice because it is the
-  # simplest approach to changing $(DEPDIR) to its actual value in the
-  # expansion.
-  for file in `sed -n "
-    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
-    # Make sure the directory exists.
-    test -f "$dirpart/$file" && continue
-    fdir=`$as_dirname -- "$file" ||
+    else
+      continue
+    fi
+    # Extract the definition of DEPDIR, am__include, and am__quote
+    # from the Makefile without running `make'.
+    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+    test -z "$DEPDIR" && continue
+    am__include=`sed -n 's/^am__include = //p' < "$mf"`
+    test -z "am__include" && continue
+    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+    # When using ansi2knr, U may be empty or an underscore; expand it
+    U=`sed -n 's/^U = //p' < "$mf"`
+    # Find all dependency output files, they are included files with
+    # $(DEPDIR) in their names.  We invoke sed twice because it is the
+    # simplest approach to changing $(DEPDIR) to its actual value in the
+    # expansion.
+    for file in `sed -n "
+      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+      # Make sure the directory exists.
+      test -f "$dirpart/$file" && continue
+      fdir=`$as_dirname -- "$file" ||
 $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$file" : 'X\(//\)[^/]' \| \
 	 X"$file" : 'X\(//\)$' \| \
@@ -35252,51 +20798,12 @@ $as_echo X"$file" |
 	    q
 	  }
 	  s/.*/./; q'`
-    { as_dir=$dirpart/$fdir
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
+      as_dir=$dirpart/$fdir; as_fn_mkdir_p
+      # echo "creating $dirpart/$file"
+      echo '# dummy' > "$dirpart/$file"
     done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
-   { (exit 1); exit 1; }; }; }
-    # echo "creating $dirpart/$file"
-    echo '# dummy' > "$dirpart/$file"
   done
-done
+}
  ;;
     "libtool":C)
 
@@ -36121,15 +21628,12 @@ _LT_EOF
 done # for ac_tag
 
 
-{ (exit 0); exit 0; }
+as_fn_exit 0
 _ACEOF
-chmod +x $CONFIG_STATUS
 ac_clean_files=$ac_clean_files_save
 
 test $ac_write_fail = 0 ||
-  { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
 
 
 # configure is writing to config.log, and then calls config.status.
@@ -36150,7 +21654,7 @@ if test "$no_create" != yes; then
   exec 5>>config.log
   # Use ||, not &&, to avoid exiting from the if with $? = 1, which
   # would make configure fail if this is the last instruction.
-  $ac_cs_success || { (exit 1); exit 1; }
+  $ac_cs_success || as_fn_exit $?
 fi
 
 #
@@ -36194,7 +21698,7 @@ if test "$no_recursion" != yes; then
       case $ac_arg in
       *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
       esac
-      ac_sub_configure_args="$ac_sub_configure_args '$ac_arg'" ;;
+      as_fn_append ac_sub_configure_args " '$ac_arg'" ;;
     esac
   done
 
@@ -36223,49 +21727,9 @@ if test "$no_recursion" != yes; then
     test -d "$srcdir/$ac_dir" || continue
 
     ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)"
-    $as_echo "$as_me:$LINENO: $ac_msg" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5
     $as_echo "$ac_msg" >&6
-    { as_dir="$ac_dir"
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
-   { (exit 1); exit 1; }; }; }
+    as_dir="$ac_dir"; as_fn_mkdir_p
     ac_builddir=.
 
 case "$ac_dir" in
@@ -36312,7 +21776,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
       # This should be Cygnus configure.
       ac_sub_configure=$ac_aux_dir/configure
     else
-      { $as_echo "$as_me:$LINENO: WARNING: no configuration information is in $ac_dir" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5
 $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;}
       ac_sub_configure=
     fi
@@ -36326,21 +21790,19 @@ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;}
 	ac_sub_cache_file=$ac_top_build_prefix$cache_file ;;
       esac
 
-      { $as_echo "$as_me:$LINENO: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5
 $as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;}
       # The eval makes quoting arguments work.
       eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \
 	   --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" ||
-	{ { $as_echo "$as_me:$LINENO: error: $ac_sub_configure failed for $ac_dir" >&5
-$as_echo "$as_me: error: $ac_sub_configure failed for $ac_dir" >&2;}
-   { (exit 1); exit 1; }; }
+	as_fn_error "$ac_sub_configure failed for $ac_dir" "$LINENO" 5
     fi
 
     cd "$ac_popdir"
   done
 fi
 if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 fi
 
@@ -36450,7 +21912,7 @@ echo "
 
 "
 if test x$with_static_mono = xno -a "x$platform_win32" != "xyes"; then
-   { $as_echo "$as_me:$LINENO: WARNING: Turning off static Mono is a risk" >&5
+   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Turning off static Mono is a risk" >&5
 $as_echo "$as_me: WARNING: Turning off static Mono is a risk" >&2;}
 fi
 
@@ -36462,4 +21924,3 @@ if test x$gc = xsgen; then
 	echo IMPORTANT:
 	echo IMPORTANT: There are known problems with it, use at your own risk.
 fi
-
diff --git a/configure.in b/configure.in
index 2e066a9..0eccbfc 100644
--- a/configure.in
+++ b/configure.in
@@ -6,7 +6,7 @@ AC_CANONICAL_SYSTEM
 m4_ifdef([_A][M_PROG_TAR],[_A][M_SET_OPTION([tar-ustar])])
 
 AM_CONFIG_HEADER(config.h)
-AM_INIT_AUTOMAKE(mono,2.4.3)
+AM_INIT_AUTOMAKE(mono,2.4.4)
 AM_MAINTAINER_MODE
 
 API_VER=1.0
@@ -837,6 +837,31 @@ if test x$platform_win32 = xno; then
 
 	AC_CHECK_FUNCS(sched_setaffinity)
 
+	dnl ****************************************************************
+	dnl *** Check for sched_setaffinity from glibc versions before   ***
+	dnl *** 2.3.4. The older versions of the function only take 2    ***
+	dnl *** parameters, not 3.                                       ***
+	dnl ***                                                          ***
+	dnl *** Because the interface change was not made in a minor     ***
+	dnl *** version rev, the __GLIBC__ and __GLIBC_MINOR__ macros    ***
+	dnl *** won't always indicate the interface sched_affinity has.  ***
+	dnl ****************************************************************
+	AC_MSG_CHECKING(for sched_setaffinity from glibc < 2.3.4)
+	AC_TRY_COMPILE([#include <sched.h>], [
+		int main() {
+            int mask = 1; 
+            sched_setaffinity(0, &mask);
+        }
+	], [
+		# Yes, we have it...
+		AC_MSG_RESULT(yes)
+		AC_DEFINE(GLIBC_BEFORE_2_3_4_SCHED_SETAFFINITY, 1, [Have GLIBC_BEFORE_2_3_4_SCHED_SETAFFINITY])
+	], [
+		# We have the new, three-parameter version
+		AC_MSG_RESULT(no)
+	])
+
+
 	dnl ******************************************************************
 	dnl *** Check for large file support                               ***
 	dnl *** (If we were using autoconf 2.50 we'd use AC_SYS_LARGEFILE) ***
@@ -2266,7 +2291,7 @@ if test x$platform_win32 = xyes; then
   if test "x$cross_compiling" = "xno"; then
     mono_cfg_dir=`cygpath -w -a $mono_cfg_root`\\etc
   else
-    mono_cfg_dir=`echo $mono_cfg_root | tr '/' '\\\'`\\etc
+    mono_cfg_dir=`echo $mono_cfg_root | tr '/' '\\'`\\etc
   fi
 else
   mono_cfg_dir=$mono_cfg_root/etc
@@ -2545,4 +2570,3 @@ if test x$gc = xsgen; then
 	echo IMPORTANT:
 	echo IMPORTANT: There are known problems with it, use at your own risk.
 fi
-
diff --git a/data/Makefile.in b/data/Makefile.in
index 98c5471..3c50437 100644
--- a/data/Makefile.in
+++ b/data/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -61,6 +63,7 @@ CONFIG_CLEAN_FILES = mint.pc mono.pc mono-cairo.pc mono-nunit.pc \
 	dotnet.pc dotnet35.pc wcf.pc cecil.pc smcs.pc \
 	system.web.extensions_1.0.pc \
 	system.web.extensions.design_1.0.pc system.web.mvc.pc config
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -75,17 +78,58 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(monodir)" "$(DESTDIR)$(pkgconfigdir)"
-monoDATA_INSTALL = $(INSTALL_DATA)
-pkgconfigDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(mono_DATA) $(pkgconfig_DATA)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+	distdir
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
 API_VER = @API_VER@
@@ -176,6 +220,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -297,14 +342,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  data/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  data/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu data/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -322,6 +367,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 mint.pc: $(top_builddir)/config.status $(srcdir)/mint.pc.in
 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 mono.pc: $(top_builddir)/config.status $(srcdir)/mono.pc.in
@@ -365,37 +411,43 @@ clean-libtool:
 install-monoDATA: $(mono_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(monodir)" || $(MKDIR_P) "$(DESTDIR)$(monodir)"
-	@list='$(mono_DATA)'; for p in $$list; do \
+	@list='$(mono_DATA)'; test -n "$(monodir)" || list=; \
+	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  f=$(am__strip_dir) \
-	  echo " $(monoDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(monodir)/$$f'"; \
-	  $(monoDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(monodir)/$$f"; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(monodir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(monodir)" || exit $$?; \
 	done
 
 uninstall-monoDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(mono_DATA)'; for p in $$list; do \
-	  f=$(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(monodir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(monodir)/$$f"; \
-	done
+	@list='$(mono_DATA)'; test -n "$(monodir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	test -n "$$files" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(monodir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(monodir)" && rm -f $$files
 install-pkgconfigDATA: $(pkgconfig_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
-	@list='$(pkgconfig_DATA)'; for p in $$list; do \
+	@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  f=$(am__strip_dir) \
-	  echo " $(pkgconfigDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
-	  $(pkgconfigDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgconfigdir)/$$f"; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \
 	done
 
 uninstall-pkgconfigDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(pkgconfig_DATA)'; for p in $$list; do \
-	  f=$(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(pkgconfigdir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(pkgconfigdir)/$$f"; \
-	done
+	@list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	test -n "$$files" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files
 
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
@@ -421,7 +473,7 @@ $(RECURSIVE_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done; \
 	if test "$$dot_seen" = "no"; then \
@@ -455,16 +507,16 @@ $(RECURSIVE_CLEAN_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done && test -z "$$fail"
 tags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 	done
 ctags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
 	done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -472,14 +524,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
 	  include_option=--etags-include; \
@@ -491,7 +543,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test ! -f $$subdir/TAGS || \
-	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
@@ -500,29 +552,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -543,29 +600,44 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
-	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test -d "$(distdir)/$$subdir" \
 	    || $(MKDIR_P) "$(distdir)/$$subdir" \
 	    || exit 1; \
-	    distdir=`$(am__cd) $(distdir) && pwd`; \
-	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
-	    (cd $$subdir && \
+	  fi; \
+	done
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+	    $(am__relativize); \
+	    new_distdir=$$reldir; \
+	    dir1=$$subdir; dir2="$(top_distdir)"; \
+	    $(am__relativize); \
+	    new_top_distdir=$$reldir; \
+	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+	    ($(am__cd) $$subdir && \
 	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$top_distdir" \
-	        distdir="$$distdir/$$subdir" \
+	        top_distdir="$$new_top_distdir" \
+	        distdir="$$new_distdir" \
 		am__remove_distdir=: \
 		am__skip_length_check=: \
+		am__skip_mode_fix=: \
 	        distdir) \
 	      || exit 1; \
 	  fi; \
@@ -598,6 +670,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
 
 maintainer-clean-generic:
@@ -617,6 +690,8 @@ dvi-am:
 
 html: html-recursive
 
+html-am:
+
 info: info-recursive
 
 info-am:
@@ -625,18 +700,28 @@ install-data-am: install-monoDATA install-pkgconfigDATA
 
 install-dvi: install-dvi-recursive
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-recursive
 
+install-html-am:
+
 install-info: install-info-recursive
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-recursive
 
+install-pdf-am:
+
 install-ps: install-ps-recursive
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -657,8 +742,8 @@ ps-am:
 
 uninstall-am: uninstall-monoDATA uninstall-pkgconfigDATA
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
-	install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+	install-am install-strip tags-recursive
 
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
 	all all-am check check-am clean clean-generic clean-libtool \
@@ -675,6 +760,7 @@ uninstall-am: uninstall-monoDATA uninstall-pkgconfigDATA
 	ps ps-am tags tags-recursive uninstall uninstall-am \
 	uninstall-monoDATA uninstall-pkgconfigDATA
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/data/net_1_1/Makefile.in b/data/net_1_1/Makefile.in
index 0793216..f6f1e08 100644
--- a/data/net_1_1/Makefile.in
+++ b/data/net_1_1/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -47,6 +49,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -54,9 +57,23 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(monodir)"
-monoDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(mono_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -149,6 +166,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -253,14 +271,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  data/net_1_1/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  data/net_1_1/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/net_1_1/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu data/net_1_1/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -278,6 +296,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -287,20 +306,23 @@ clean-libtool:
 install-monoDATA: $(mono_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(monodir)" || $(MKDIR_P) "$(DESTDIR)$(monodir)"
-	@list='$(mono_DATA)'; for p in $$list; do \
+	@list='$(mono_DATA)'; test -n "$(monodir)" || list=; \
+	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  f=$(am__strip_dir) \
-	  echo " $(monoDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(monodir)/$$f'"; \
-	  $(monoDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(monodir)/$$f"; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(monodir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(monodir)" || exit $$?; \
 	done
 
 uninstall-monoDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(mono_DATA)'; for p in $$list; do \
-	  f=$(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(monodir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(monodir)/$$f"; \
-	done
+	@list='$(mono_DATA)'; test -n "$(monodir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	test -n "$$files" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(monodir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(monodir)" && rm -f $$files
 tags: TAGS
 TAGS:
 
@@ -324,13 +346,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -361,6 +387,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -379,6 +406,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -387,18 +416,28 @@ install-data-am: install-monoDATA
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -433,6 +472,7 @@ uninstall-am: uninstall-monoDATA
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	uninstall uninstall-am uninstall-monoDATA
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/data/net_2_0/Browsers/Makefile.in b/data/net_2_0/Browsers/Makefile.in
index af37866..d8f9197 100644
--- a/data/net_2_0/Browsers/Makefile.in
+++ b/data/net_2_0/Browsers/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -47,6 +49,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -54,9 +57,23 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(monodir)"
-monoDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(mono_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -149,6 +166,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -249,14 +267,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  data/net_2_0/Browsers/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  data/net_2_0/Browsers/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/net_2_0/Browsers/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu data/net_2_0/Browsers/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -274,6 +292,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -283,20 +302,23 @@ clean-libtool:
 install-monoDATA: $(mono_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(monodir)" || $(MKDIR_P) "$(DESTDIR)$(monodir)"
-	@list='$(mono_DATA)'; for p in $$list; do \
+	@list='$(mono_DATA)'; test -n "$(monodir)" || list=; \
+	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  f=$(am__strip_dir) \
-	  echo " $(monoDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(monodir)/$$f'"; \
-	  $(monoDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(monodir)/$$f"; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(monodir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(monodir)" || exit $$?; \
 	done
 
 uninstall-monoDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(mono_DATA)'; for p in $$list; do \
-	  f=$(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(monodir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(monodir)/$$f"; \
-	done
+	@list='$(mono_DATA)'; test -n "$(monodir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	test -n "$$files" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(monodir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(monodir)" && rm -f $$files
 tags: TAGS
 TAGS:
 
@@ -320,13 +342,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -357,6 +383,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -375,6 +402,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -383,18 +412,28 @@ install-data-am: install-monoDATA
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -429,6 +468,7 @@ uninstall-am: uninstall-monoDATA
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	uninstall uninstall-am uninstall-monoDATA
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/data/net_2_0/Makefile.in b/data/net_2_0/Makefile.in
index 03b56de..e997c70 100644
--- a/data/net_2_0/Makefile.in
+++ b/data/net_2_0/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -47,6 +49,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -61,16 +64,58 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(monodir)"
-monoDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(mono_DATA)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+	distdir
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
 API_VER = @API_VER@
@@ -161,6 +206,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -270,14 +316,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  data/net_2_0/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  data/net_2_0/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu data/net_2_0/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu data/net_2_0/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -295,6 +341,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -304,20 +351,23 @@ clean-libtool:
 install-monoDATA: $(mono_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(monodir)" || $(MKDIR_P) "$(DESTDIR)$(monodir)"
-	@list='$(mono_DATA)'; for p in $$list; do \
+	@list='$(mono_DATA)'; test -n "$(monodir)" || list=; \
+	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  f=$(am__strip_dir) \
-	  echo " $(monoDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(monodir)/$$f'"; \
-	  $(monoDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(monodir)/$$f"; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(monodir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(monodir)" || exit $$?; \
 	done
 
 uninstall-monoDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(mono_DATA)'; for p in $$list; do \
-	  f=$(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(monodir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(monodir)/$$f"; \
-	done
+	@list='$(mono_DATA)'; test -n "$(monodir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	test -n "$$files" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(monodir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(monodir)" && rm -f $$files
 
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
@@ -343,7 +393,7 @@ $(RECURSIVE_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done; \
 	if test "$$dot_seen" = "no"; then \
@@ -377,16 +427,16 @@ $(RECURSIVE_CLEAN_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done && test -z "$$fail"
 tags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 	done
 ctags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
 	done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -394,14 +444,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
 	  include_option=--etags-include; \
@@ -413,7 +463,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test ! -f $$subdir/TAGS || \
-	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
@@ -422,29 +472,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -465,29 +520,44 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
-	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test -d "$(distdir)/$$subdir" \
 	    || $(MKDIR_P) "$(distdir)/$$subdir" \
 	    || exit 1; \
-	    distdir=`$(am__cd) $(distdir) && pwd`; \
-	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
-	    (cd $$subdir && \
+	  fi; \
+	done
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+	    $(am__relativize); \
+	    new_distdir=$$reldir; \
+	    dir1=$$subdir; dir2="$(top_distdir)"; \
+	    $(am__relativize); \
+	    new_top_distdir=$$reldir; \
+	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+	    ($(am__cd) $$subdir && \
 	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$top_distdir" \
-	        distdir="$$distdir/$$subdir" \
+	        top_distdir="$$new_top_distdir" \
+	        distdir="$$new_distdir" \
 		am__remove_distdir=: \
 		am__skip_length_check=: \
+		am__skip_mode_fix=: \
 	        distdir) \
 	      || exit 1; \
 	  fi; \
@@ -520,6 +590,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -538,6 +609,8 @@ dvi-am:
 
 html: html-recursive
 
+html-am:
+
 info: info-recursive
 
 info-am:
@@ -546,18 +619,28 @@ install-data-am: install-monoDATA
 
 install-dvi: install-dvi-recursive
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-recursive
 
+install-html-am:
+
 install-info: install-info-recursive
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-recursive
 
+install-pdf-am:
+
 install-ps: install-ps-recursive
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -578,8 +661,8 @@ ps-am:
 
 uninstall-am: uninstall-monoDATA
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
-	install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+	install-am install-strip tags-recursive
 
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
 	all all-am check check-am clean clean-generic clean-libtool \
@@ -595,6 +678,7 @@ uninstall-am: uninstall-monoDATA
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags tags-recursive uninstall uninstall-am uninstall-monoDATA
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/debian/libmono-system2.1-cil.debhelper.log b/debian/libmono-system2.1-cil.debhelper.log
deleted file mode 100644
index 4ec72ae..0000000
--- a/debian/libmono-system2.1-cil.debhelper.log
+++ /dev/null
@@ -1 +0,0 @@
-dh_makeclilibs
diff --git a/debian/libmono-web1.0-cil.debhelper.log b/debian/libmono-web1.0-cil.debhelper.log
deleted file mode 100644
index 4ec72ae..0000000
--- a/debian/libmono-web1.0-cil.debhelper.log
+++ /dev/null
@@ -1 +0,0 @@
-dh_makeclilibs
diff --git a/debian/libmono-web2.0-cil.debhelper.log b/debian/libmono-web2.0-cil.debhelper.log
deleted file mode 100644
index 4ec72ae..0000000
--- a/debian/libmono-web2.0-cil.debhelper.log
+++ /dev/null
@@ -1 +0,0 @@
-dh_makeclilibs
diff --git a/depcomp b/depcomp
index e5f9736..df8eea7 100755
--- a/depcomp
+++ b/depcomp
@@ -1,10 +1,10 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2007-03-29.01
+scriptversion=2009-04-28.21; # UTC
 
-# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007 Free Software
-# Foundation, Inc.
+# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
+# Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -17,9 +17,7 @@ scriptversion=2007-03-29.01
 # GNU General Public License for more details.
 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -87,6 +85,15 @@ if test "$depmode" = dashXmstdout; then
    depmode=dashmstdout
 fi
 
+cygpath_u="cygpath -u -f -"
+if test "$depmode" = msvcmsys; then
+   # This is just like msvisualcpp but w/o cygpath translation.
+   # Just convert the backslash-escaped backslashes to single forward
+   # slashes to satisfy depend.m4
+   cygpath_u="sed s,\\\\\\\\,/,g"
+   depmode=msvisualcpp
+fi
+
 case "$depmode" in
 gcc3)
 ## gcc 3 implements dependency tracking that does exactly what
@@ -192,14 +199,14 @@ sgi)
 ' < "$tmpdepfile" \
     | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
     tr '
-' ' ' >> $depfile
-    echo >> $depfile
+' ' ' >> "$depfile"
+    echo >> "$depfile"
 
     # The second pass generates a dummy entry for each header file.
     tr ' ' '
 ' < "$tmpdepfile" \
    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
-   >> $depfile
+   >> "$depfile"
   else
     # The sourcefile does not contain any dependencies, so just
     # store a dummy comment line, to avoid errors with the Makefile
@@ -328,7 +335,12 @@ hp2)
   if test -f "$tmpdepfile"; then
     sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
     # Add `dependent.h:' lines.
-    sed -ne '2,${; s/^ *//; s/ \\*$//; s/$/:/; p;}' "$tmpdepfile" >> "$depfile"
+    sed -ne '2,${
+	       s/^ *//
+	       s/ \\*$//
+	       s/$/:/
+	       p
+	     }' "$tmpdepfile" >> "$depfile"
   else
     echo "#dummy" > "$depfile"
   fi
@@ -404,7 +416,7 @@ dashmstdout)
 
   # Remove the call to Libtool.
   if test "$libtool" = yes; then
-    while test $1 != '--mode=compile'; do
+    while test "X$1" != 'X--mode=compile'; do
       shift
     done
     shift
@@ -455,32 +467,39 @@ makedepend)
   "$@" || exit $?
   # Remove any Libtool call
   if test "$libtool" = yes; then
-    while test $1 != '--mode=compile'; do
+    while test "X$1" != 'X--mode=compile'; do
       shift
     done
     shift
   fi
   # X makedepend
   shift
-  cleared=no
-  for arg in "$@"; do
+  cleared=no eat=no
+  for arg
+  do
     case $cleared in
     no)
       set ""; shift
       cleared=yes ;;
     esac
+    if test $eat = yes; then
+      eat=no
+      continue
+    fi
     case "$arg" in
     -D*|-I*)
       set fnord "$@" "$arg"; shift ;;
     # Strip any option that makedepend may not understand.  Remove
     # the object too, otherwise makedepend will parse it as a source file.
+    -arch)
+      eat=yes ;;
     -*|$object)
       ;;
     *)
       set fnord "$@" "$arg"; shift ;;
     esac
   done
-  obj_suffix="`echo $object | sed 's/^.*\././'`"
+  obj_suffix=`echo "$object" | sed 's/^.*\././'`
   touch "$tmpdepfile"
   ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
   rm -f "$depfile"
@@ -500,7 +519,7 @@ cpp)
 
   # Remove the call to Libtool.
   if test "$libtool" = yes; then
-    while test $1 != '--mode=compile'; do
+    while test "X$1" != 'X--mode=compile'; do
       shift
     done
     shift
@@ -538,13 +557,27 @@ cpp)
 
 msvisualcpp)
   # Important note: in order to support this mode, a compiler *must*
-  # always write the preprocessed file to stdout, regardless of -o,
-  # because we must use -o when running libtool.
+  # always write the preprocessed file to stdout.
   "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test "X$1" != 'X--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
   IFS=" "
   for arg
   do
     case "$arg" in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
     "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
 	set fnord "$@"
 	shift
@@ -557,16 +590,23 @@ msvisualcpp)
 	;;
     esac
   done
-  "$@" -E |
-  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
+  "$@" -E 2>/dev/null |
+  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
   rm -f "$depfile"
   echo "$object : \\" > "$depfile"
-  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
   echo "	" >> "$depfile"
-  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+  sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
   rm -f "$tmpdepfile"
   ;;
 
+msvcmsys)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
 none)
   exec "$@"
   ;;
@@ -585,5 +625,6 @@ exit 0
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
 # End:
diff --git a/docs/ChangeLog b/docs/ChangeLog
index 7241365..47ff219 100644
--- a/docs/ChangeLog
+++ b/docs/ChangeLog
@@ -1,3 +1,16 @@
+2009-12-22  Jo Shields  <directhex at apebox.org>
+	* HtmlAgilityPack/LICENSE: Include upstream license (Ms-PL) since the
+	  file headers don't specify it
+
+2009-12-22  Jo Shields  <directhex at apebox.org>
+
+	* HtmlAgilityPack/*: Bundle HtmlAgilityPack 1.4~beta2 from
+	  http://www.codeplex.com/htmlagilitypack in source form.
+
+	* AgilityPack.dll: Remove binary assembly, use source instead.
+
+	* docs.make Makefile.am README: Reflect above changes
+
 2008-12-12  Mark Probst  <mark.probst at gmail.com>
 
 	* mini-porting.txt: Added some details about function descriptors
diff --git a/docs/HtmlAgilityPack/EncodingFoundException.cs b/docs/HtmlAgilityPack/EncodingFoundException.cs
new file mode 100644
index 0000000..bffdc02
--- /dev/null
+++ b/docs/HtmlAgilityPack/EncodingFoundException.cs
@@ -0,0 +1,33 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+using System;
+using System.Text;
+
+namespace HtmlAgilityPack
+{
+    internal class EncodingFoundException : Exception
+    {
+        #region Fields
+
+        private Encoding _encoding;
+
+        #endregion
+
+        #region Constructors
+
+        internal EncodingFoundException(Encoding encoding)
+        {
+            _encoding = encoding;
+        }
+
+        #endregion
+
+        #region Properties
+
+        internal Encoding Encoding
+        {
+            get { return _encoding; }
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/HtmlAttribute.cs b/docs/HtmlAgilityPack/HtmlAttribute.cs
new file mode 100644
index 0000000..7a3de04
--- /dev/null
+++ b/docs/HtmlAgilityPack/HtmlAttribute.cs
@@ -0,0 +1,260 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+
+#region
+
+using System;
+using System.Diagnostics;
+
+#endregion
+
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// Represents an HTML attribute.
+    /// </summary>
+    [DebuggerDisplay("Name: {OriginalName}, Value: {Value}")]
+    public class HtmlAttribute : IComparable
+    {
+        #region Fields
+
+        private int _line;
+        internal int _lineposition;
+        internal string _name;
+        internal int _namelength;
+        internal int _namestartindex;
+        internal HtmlDocument _ownerdocument; // attribute can exists without a node
+        internal HtmlNode _ownernode;
+        private AttributeValueQuote _quoteType = AttributeValueQuote.DoubleQuote;
+        internal int _streamposition;
+        internal string _value;
+        internal int _valuelength;
+        internal int _valuestartindex;
+
+        #endregion
+
+        #region Constructors
+
+        internal HtmlAttribute(HtmlDocument ownerdocument)
+        {
+            _ownerdocument = ownerdocument;
+        }
+
+        #endregion
+
+        #region Properties
+
+        /// <summary>
+        /// Gets the line number of this attribute in the document.
+        /// </summary>
+        public int Line
+        {
+            get { return _line; }
+            internal set { _line = value; }
+        }
+
+        /// <summary>
+        /// Gets the column number of this attribute in the document.
+        /// </summary>
+        public int LinePosition
+        {
+            get { return _lineposition; }
+        }
+
+        /// <summary>
+        /// Gets the qualified name of the attribute.
+        /// </summary>
+        public string Name
+        {
+            get
+            {
+                if (_name == null)
+                {
+                    _name = _ownerdocument._text.Substring(_namestartindex, _namelength);
+                }
+                return _name.ToLower();
+            }
+            set
+            {
+                if (value == null)
+                {
+                    throw new ArgumentNullException("value");
+                }
+                _name = value;
+                if (_ownernode != null)
+                {
+                    _ownernode._innerchanged = true;
+                    _ownernode._outerchanged = true;
+                }
+            }
+        }
+
+        /// <summary>
+        /// Name of attribute with original case
+        /// </summary>
+        public string OriginalName
+        {
+            get { return _name; }
+        }
+
+        /// <summary>
+        /// Gets the HTML document to which this attribute belongs.
+        /// </summary>
+        public HtmlDocument OwnerDocument
+        {
+            get { return _ownerdocument; }
+        }
+
+        /// <summary>
+        /// Gets the HTML node to which this attribute belongs.
+        /// </summary>
+        public HtmlNode OwnerNode
+        {
+            get { return _ownernode; }
+        }
+
+        /// <summary>
+        /// Specifies what type of quote the data should be wrapped in
+        /// </summary>
+        public AttributeValueQuote QuoteType
+        {
+            get { return _quoteType; }
+            set { _quoteType = value; }
+        }
+
+        /// <summary>
+        /// Gets the stream position of this attribute in the document, relative to the start of the document.
+        /// </summary>
+        public int StreamPosition
+        {
+            get { return _streamposition; }
+        }
+
+        /// <summary>
+        /// Gets or sets the value of the attribute.
+        /// </summary>
+        public string Value
+        {
+            get
+            {
+                if (_value == null)
+                {
+                    _value = _ownerdocument._text.Substring(_valuestartindex, _valuelength);
+                }
+                return _value;
+            }
+            set
+            {
+                _value = value;
+                if (_ownernode != null)
+                {
+                    _ownernode._innerchanged = true;
+                    _ownernode._outerchanged = true;
+                }
+            }
+        }
+
+        internal string XmlName
+        {
+            get { return HtmlDocument.GetXmlName(Name); }
+        }
+
+        internal string XmlValue
+        {
+            get { return Value; }
+        }
+
+        /// <summary>
+        /// Gets a valid XPath string that points to this Attribute
+        /// </summary>
+        public string XPath
+        {
+            get
+            {
+                string basePath = (OwnerNode == null) ? "/" : OwnerNode.XPath + "/";
+                return basePath + GetRelativeXpath();
+            }
+        }
+
+        #endregion
+
+        #region IComparable Members
+
+        /// <summary>
+        /// Compares the current instance with another attribute. Comparison is based on attributes' name.
+        /// </summary>
+        /// <param name="obj">An attribute to compare with this instance.</param>
+        /// <returns>A 32-bit signed integer that indicates the relative order of the names comparison.</returns>
+        public int CompareTo(object obj)
+        {
+            HtmlAttribute att = obj as HtmlAttribute;
+            if (att == null)
+            {
+                throw new ArgumentException("obj");
+            }
+            return Name.CompareTo(att.Name);
+        }
+
+        #endregion
+
+        #region Public Methods
+
+        /// <summary>
+        /// Creates a duplicate of this attribute.
+        /// </summary>
+        /// <returns>The cloned attribute.</returns>
+        public HtmlAttribute Clone()
+        {
+            HtmlAttribute att = new HtmlAttribute(_ownerdocument);
+            att.Name = Name;
+            att.Value = Value;
+            return att;
+        }
+
+        /// <summary>
+        /// Removes this attribute from it's parents collection
+        /// </summary>
+        public void Remove()
+        {
+            _ownernode.Attributes.Remove(this);
+        }
+
+        #endregion
+
+        #region Private Methods
+
+        private string GetRelativeXpath()
+        {
+            if (OwnerNode == null)
+                return Name;
+
+            int i = 1;
+            foreach (HtmlAttribute node in OwnerNode.Attributes)
+            {
+                if (node.Name != Name) continue;
+
+                if (node == this)
+                    break;
+
+                i++;
+            }
+            return "@" + Name + "[" + i + "]";
+        }
+
+        #endregion
+    }
+
+    /// <summary>
+    /// An Enum representing different types of Quotes used for surrounding attribute values
+    /// </summary>
+    public enum AttributeValueQuote
+    {
+        /// <summary>
+        /// A single quote mark '
+        /// </summary>
+        SingleQuote,
+        /// <summary>
+        /// A double quote mark "
+        /// </summary>
+        DoubleQuote
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/HtmlAttributeCollection.cs b/docs/HtmlAgilityPack/HtmlAttributeCollection.cs
new file mode 100644
index 0000000..07af997
--- /dev/null
+++ b/docs/HtmlAgilityPack/HtmlAttributeCollection.cs
@@ -0,0 +1,394 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// Represents a combined list and collection of HTML nodes.
+    /// </summary>
+    public class HtmlAttributeCollection : IList<HtmlAttribute>
+    {
+        #region Fields
+
+        internal Dictionary<string, HtmlAttribute> Hashitems = new Dictionary<string, HtmlAttribute>();
+        private HtmlNode _ownernode;
+        private List<HtmlAttribute> items = new List<HtmlAttribute>();
+
+        #endregion
+
+        #region Constructors
+
+        internal HtmlAttributeCollection(HtmlNode ownernode)
+        {
+            _ownernode = ownernode;
+        }
+
+        #endregion
+
+        #region Properties
+
+        /// <summary>
+        /// Gets a given attribute from the list using its name.
+        /// </summary>
+        public HtmlAttribute this[string name]
+        {
+            get
+            {
+                if (name == null)
+                {
+                    throw new ArgumentNullException("name");
+                }
+                return Hashitems.ContainsKey(name.ToLower()) ? Hashitems[name.ToLower()] : null;
+            }
+            set { Append(value); }
+        }
+
+        #endregion
+
+        #region IList<HtmlAttribute> Members
+
+        /// <summary>
+        /// Gets the number of elements actually contained in the list.
+        /// </summary>
+        public int Count
+        {
+            get { return items.Count; }
+        }
+
+        /// <summary>
+        /// Gets readonly status of colelction
+        /// </summary>
+        public bool IsReadOnly
+        {
+            get { return false; }
+        }
+
+        /// <summary>
+        /// Gets the attribute at the specified index.
+        /// </summary>
+        public HtmlAttribute this[int index]
+        {
+            get { return items[index]; }
+            set { items[index] = value; }
+        }
+
+        /// <summary>
+        /// Adds supplied item to collection
+        /// </summary>
+        /// <param name="item"></param>
+        public void Add(HtmlAttribute item)
+        {
+            Append(item);
+        }
+
+        /// <summary>
+        /// Explicit clear
+        /// </summary>
+        void ICollection<HtmlAttribute>.Clear()
+        {
+            items.Clear();
+        }
+
+        /// <summary>
+        /// Retreives existence of supplied item
+        /// </summary>
+        /// <param name="item"></param>
+        /// <returns></returns>
+        public bool Contains(HtmlAttribute item)
+        {
+            return items.Contains(item);
+        }
+
+        /// <summary>
+        /// Copies collection to array
+        /// </summary>
+        /// <param name="array"></param>
+        /// <param name="arrayIndex"></param>
+        public void CopyTo(HtmlAttribute[] array, int arrayIndex)
+        {
+            items.CopyTo(array, arrayIndex);
+        }
+
+        /// <summary>
+        /// Get Explicit enumerator
+        /// </summary>
+        /// <returns></returns>
+        IEnumerator<HtmlAttribute> IEnumerable<HtmlAttribute>.GetEnumerator()
+        {
+            return items.GetEnumerator();
+        }
+
+        /// <summary>
+        /// Explicit non-generic enumerator
+        /// </summary>
+        /// <returns></returns>
+        IEnumerator IEnumerable.GetEnumerator()
+        {
+            return items.GetEnumerator();
+        }
+
+        /// <summary>
+        /// Retrieves the index for the supplied item, -1 if not found
+        /// </summary>
+        /// <param name="item"></param>
+        /// <returns></returns>
+        public int IndexOf(HtmlAttribute item)
+        {
+            return items.IndexOf(item);
+        }
+
+        /// <summary>
+        /// Inserts given item into collection at supplied index
+        /// </summary>
+        /// <param name="index"></param>
+        /// <param name="item"></param>
+        public void Insert(int index, HtmlAttribute item)
+        {
+            if (item == null)
+            {
+                throw new ArgumentNullException("item");
+            }
+
+            Hashitems[item.Name] = item;
+            item._ownernode = _ownernode;
+            items.Insert(index, item);
+
+            _ownernode._innerchanged = true;
+            _ownernode._outerchanged = true;
+        }
+
+        /// <summary>
+        /// Explicit collection remove
+        /// </summary>
+        /// <param name="item"></param>
+        /// <returns></returns>
+        bool ICollection<HtmlAttribute>.Remove(HtmlAttribute item)
+        {
+            return items.Remove(item);
+        }
+
+        /// <summary>
+        /// Removes the attribute at the specified index.
+        /// </summary>
+        /// <param name="index">The index of the attribute to remove.</param>
+        public void RemoveAt(int index)
+        {
+            HtmlAttribute att = items[index];
+            Hashitems.Remove(att.Name);
+            items.RemoveAt(index);
+
+            _ownernode._innerchanged = true;
+            _ownernode._outerchanged = true;
+        }
+
+        #endregion
+
+        #region Public Methods
+
+        /// <summary>
+        /// Adds a new attribute to the collection with the given values
+        /// </summary>
+        /// <param name="name"></param>
+        /// <param name="value"></param>
+        public void Add(string name, string value)
+        {
+            Append(name, value);
+        }
+
+        /// <summary>
+        /// Inserts the specified attribute as the last attribute in the collection.
+        /// </summary>
+        /// <param name="newAttribute">The attribute to insert. May not be null.</param>
+        /// <returns>The appended attribute.</returns>
+        public HtmlAttribute Append(HtmlAttribute newAttribute)
+        {
+            if (newAttribute == null)
+            {
+                throw new ArgumentNullException("newAttribute");
+            }
+
+            Hashitems[newAttribute.Name] = newAttribute;
+            newAttribute._ownernode = _ownernode;
+            items.Add(newAttribute);
+
+            _ownernode._innerchanged = true;
+            _ownernode._outerchanged = true;
+            return newAttribute;
+        }
+
+        /// <summary>
+        /// Creates and inserts a new attribute as the last attribute in the collection.
+        /// </summary>
+        /// <param name="name">The name of the attribute to insert.</param>
+        /// <returns>The appended attribute.</returns>
+        public HtmlAttribute Append(string name)
+        {
+            HtmlAttribute att = _ownernode._ownerdocument.CreateAttribute(name);
+            return Append(att);
+        }
+
+        /// <summary>
+        /// Creates and inserts a new attribute as the last attribute in the collection.
+        /// </summary>
+        /// <param name="name">The name of the attribute to insert.</param>
+        /// <param name="value">The value of the attribute to insert.</param>
+        /// <returns>The appended attribute.</returns>
+        public HtmlAttribute Append(string name, string value)
+        {
+            HtmlAttribute att = _ownernode._ownerdocument.CreateAttribute(name, value);
+            return Append(att);
+        }
+
+        /// <summary>
+        /// Checks for existance of attribute with given name
+        /// </summary>
+        /// <param name="name"></param>
+        /// <returns></returns>
+        public bool Contains(string name)
+        {
+            for (int i = 0; i < items.Count; i++)
+            {
+                if (items[i].Name.Equals(name.ToLower()))
+                    return true;
+            }
+            return false;
+        }
+
+        /// <summary>
+        /// Inserts the specified attribute as the first node in the collection.
+        /// </summary>
+        /// <param name="newAttribute">The attribute to insert. May not be null.</param>
+        /// <returns>The prepended attribute.</returns>
+        public HtmlAttribute Prepend(HtmlAttribute newAttribute)
+        {
+            Insert(0, newAttribute);
+            return newAttribute;
+        }
+
+        /// <summary>
+        /// Removes a given attribute from the list.
+        /// </summary>
+        /// <param name="attribute">The attribute to remove. May not be null.</param>
+        public void Remove(HtmlAttribute attribute)
+        {
+            if (attribute == null)
+            {
+                throw new ArgumentNullException("attribute");
+            }
+            int index = GetAttributeIndex(attribute);
+            if (index == -1)
+            {
+                throw new IndexOutOfRangeException();
+            }
+            RemoveAt(index);
+        }
+
+        /// <summary>
+        /// Removes an attribute from the list, using its name. If there are more than one attributes with this name, they will all be removed.
+        /// </summary>
+        /// <param name="name">The attribute's name. May not be null.</param>
+        public void Remove(string name)
+        {
+            if (name == null)
+            {
+                throw new ArgumentNullException("name");
+            }
+
+            string lname = name.ToLower();
+            for (int i = 0; i < items.Count; i++)
+            {
+                HtmlAttribute att = items[i];
+                if (att.Name == lname)
+                {
+                    RemoveAt(i);
+                }
+            }
+        }
+
+        /// <summary>
+        /// Remove all attributes in the list.
+        /// </summary>
+        public void RemoveAll()
+        {
+            Hashitems.Clear();
+            items.Clear();
+
+            _ownernode._innerchanged = true;
+            _ownernode._outerchanged = true;
+        }
+
+        #endregion
+
+        #region LINQ Methods
+
+        /// <summary>
+        /// Returns all attributes with specified name. Handles case insentivity
+        /// </summary>
+        /// <param name="attributeName">Name of the attribute</param>
+        /// <returns></returns>
+        public IEnumerable<HtmlAttribute> AttributesWithName(string attributeName)
+        {
+            attributeName = attributeName.ToLower();
+            for (int i = 0; i < items.Count; i++)
+            {
+                if (items[i].Name.Equals(attributeName))
+                    yield return items[i];
+            }
+        }
+
+        /// <summary>
+        /// Removes all attributes from the collection
+        /// </summary>
+        public void Remove()
+        {
+            foreach (HtmlAttribute item in items)
+                item.Remove();
+        }
+
+        #endregion
+
+        #region Internal Methods
+
+        /// <summary>
+        /// Clears the attribute collection
+        /// </summary>
+        internal void Clear()
+        {
+            Hashitems.Clear();
+            items.Clear();
+        }
+
+        internal int GetAttributeIndex(HtmlAttribute attribute)
+        {
+            if (attribute == null)
+            {
+                throw new ArgumentNullException("attribute");
+            }
+            for (int i = 0; i < items.Count; i++)
+            {
+                if ((items[i]) == attribute)
+                    return i;
+            }
+            return -1;
+        }
+
+        internal int GetAttributeIndex(string name)
+        {
+            if (name == null)
+            {
+                throw new ArgumentNullException("name");
+            }
+            string lname = name.ToLower();
+            for (int i = 0; i < items.Count; i++)
+            {
+                if ((items[i]).Name == lname)
+                    return i;
+            }
+            return -1;
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/HtmlCmdLine.cs b/docs/HtmlAgilityPack/HtmlCmdLine.cs
new file mode 100644
index 0000000..1421765
--- /dev/null
+++ b/docs/HtmlAgilityPack/HtmlCmdLine.cs
@@ -0,0 +1,142 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+using System;
+
+namespace HtmlAgilityPack
+{
+    internal class HtmlCmdLine
+    {
+        #region Static Members
+
+        internal static bool Help;
+
+        #endregion
+
+        #region Constructors
+
+        static HtmlCmdLine()
+        {
+            Help = false;
+            ParseArgs();
+        }
+
+        #endregion
+
+        #region Internal Methods
+
+        internal static string GetOption(string name, string def)
+        {
+            string p = def;
+            string[] args = Environment.GetCommandLineArgs();
+            for (int i = 1; i < args.Length; i++)
+            {
+                GetStringArg(args[i], name, ref p);
+            }
+            return p;
+        }
+
+        internal static string GetOption(int index, string def)
+        {
+            string p = def;
+            string[] args = Environment.GetCommandLineArgs();
+            int j = 0;
+            for (int i = 1; i < args.Length; i++)
+            {
+                if (GetStringArg(args[i], ref p))
+                {
+                    if (index == j)
+                        return p;
+                    else
+                        p = def;
+                    j++;
+                }
+            }
+            return p;
+        }
+
+        internal static bool GetOption(string name, bool def)
+        {
+            bool p = def;
+            string[] args = Environment.GetCommandLineArgs();
+            for (int i = 1; i < args.Length; i++)
+            {
+                GetBoolArg(args[i], name, ref p);
+            }
+            return p;
+        }
+
+        internal static int GetOption(string name, int def)
+        {
+            int p = def;
+            string[] args = Environment.GetCommandLineArgs();
+            for (int i = 1; i < args.Length; i++)
+            {
+                GetIntArg(args[i], name, ref p);
+            }
+            return p;
+        }
+
+        #endregion
+
+        #region Private Methods
+
+        private static void GetBoolArg(string Arg, string Name, ref bool ArgValue)
+        {
+            if (Arg.Length < (Name.Length + 1)) // -name is 1 more than name
+                return;
+            if (('/' != Arg[0]) && ('-' != Arg[0])) // not a param
+                return;
+            if (Arg.Substring(1, Name.Length).ToLower() == Name.ToLower())
+                ArgValue = true;
+        }
+
+        private static void GetIntArg(string Arg, string Name, ref int ArgValue)
+        {
+            if (Arg.Length < (Name.Length + 3)) // -name:12 is 3 more than name
+                return;
+            if (('/' != Arg[0]) && ('-' != Arg[0])) // not a param
+                return;
+            if (Arg.Substring(1, Name.Length).ToLower() == Name.ToLower())
+            {
+                try
+                {
+                    ArgValue = Convert.ToInt32(Arg.Substring(Name.Length + 2, Arg.Length - Name.Length - 2));
+                }
+                catch
+                {
+                }
+            }
+        }
+
+        private static bool GetStringArg(string Arg, ref string ArgValue)
+        {
+            if (('/' == Arg[0]) || ('-' == Arg[0]))
+                return false;
+            ArgValue = Arg;
+            return true;
+        }
+
+        private static void GetStringArg(string Arg, string Name, ref string ArgValue)
+        {
+            if (Arg.Length < (Name.Length + 3)) // -name:x is 3 more than name
+                return;
+            if (('/' != Arg[0]) && ('-' != Arg[0])) // not a param
+                return;
+            if (Arg.Substring(1, Name.Length).ToLower() == Name.ToLower())
+                ArgValue = Arg.Substring(Name.Length + 2, Arg.Length - Name.Length - 2);
+        }
+
+        private static void ParseArgs()
+        {
+            string[] args = Environment.GetCommandLineArgs();
+            for (int i = 1; i < args.Length; i++)
+            {
+                // help
+                GetBoolArg(args[i], "?", ref Help);
+                GetBoolArg(args[i], "h", ref Help);
+                GetBoolArg(args[i], "help", ref Help);
+            }
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/HtmlCommentNode.cs b/docs/HtmlAgilityPack/HtmlCommentNode.cs
new file mode 100644
index 0000000..1091dcb
--- /dev/null
+++ b/docs/HtmlAgilityPack/HtmlCommentNode.cs
@@ -0,0 +1,76 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// Represents an HTML comment.
+    /// </summary>
+    public class HtmlCommentNode : HtmlNode
+    {
+        #region Fields
+
+        private string _comment;
+
+        #endregion
+
+        #region Constructors
+
+        internal HtmlCommentNode(HtmlDocument ownerdocument, int index)
+            :
+                base(HtmlNodeType.Comment, ownerdocument, index)
+        {
+        }
+
+        #endregion
+
+        #region Properties
+
+        /// <summary>
+        /// Gets or Sets the comment text of the node.
+        /// </summary>
+        public string Comment
+        {
+            get
+            {
+                if (_comment == null)
+                {
+                    return base.InnerHtml;
+                }
+                return _comment;
+            }
+            set { _comment = value; }
+        }
+
+        /// <summary>
+        /// Gets or Sets the HTML between the start and end tags of the object. In the case of a text node, it is equals to OuterHtml.
+        /// </summary>
+        public override string InnerHtml
+        {
+            get
+            {
+                if (_comment == null)
+                {
+                    return base.InnerHtml;
+                }
+                return _comment;
+            }
+            set { _comment = value; }
+        }
+
+        /// <summary>
+        /// Gets or Sets the object and its content in HTML.
+        /// </summary>
+        public override string OuterHtml
+        {
+            get
+            {
+                if (_comment == null)
+                {
+                    return base.OuterHtml;
+                }
+                return "<!--" + _comment + "-->";
+            }
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/HtmlConsoleListener.cs b/docs/HtmlAgilityPack/HtmlConsoleListener.cs
new file mode 100644
index 0000000..bd14a7a
--- /dev/null
+++ b/docs/HtmlAgilityPack/HtmlConsoleListener.cs
@@ -0,0 +1,33 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+using System;
+using System.Diagnostics;
+
+namespace HtmlAgilityPack
+{
+    internal class HtmlConsoleListener : TraceListener
+    {
+        #region Public Methods
+
+        public override void Write(string Message)
+        {
+            Write(Message, "");
+        }
+
+        public override void Write(string Message, string Category)
+        {
+            Console.Write("T:" + Category + ": " + Message);
+        }
+
+        public override void WriteLine(string Message)
+        {
+            Write(Message + "\n");
+        }
+
+        public override void WriteLine(string Message, string Category)
+        {
+            Write(Message + "\n", Category);
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/HtmlDocument.cs b/docs/HtmlAgilityPack/HtmlDocument.cs
new file mode 100644
index 0000000..7233da0
--- /dev/null
+++ b/docs/HtmlAgilityPack/HtmlDocument.cs
@@ -0,0 +1,1962 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.IO;
+using System.Text;
+using System.Text.RegularExpressions;
+using System.Xml;
+using System.Xml.XPath;
+
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// Represents a complete HTML document.
+    /// </summary>
+    public class HtmlDocument : IXPathNavigable
+    {
+        #region Fields
+
+        private int _c;
+        private Crc32 _crc32;
+        private HtmlAttribute _currentattribute;
+        private HtmlNode _currentnode;
+        private Encoding _declaredencoding;
+        private HtmlNode _documentnode;
+        private bool _fullcomment;
+        private int _index;
+        internal Hashtable _lastnodes = new Hashtable();
+        private HtmlNode _lastparentnode;
+        private int _line;
+        private int _lineposition, _maxlineposition;
+        internal Hashtable _nodesid;
+        private ParseState _oldstate;
+        private bool _onlyDetectEncoding;
+        internal Hashtable _openednodes;
+        private List<HtmlParseError> _parseerrors = new List<HtmlParseError>();
+        private string _remainder;
+        private int _remainderOffset;
+        private ParseState _state;
+        private Encoding _streamencoding;
+        internal string _text;
+
+        // public props
+
+        /// <summary>
+        /// Adds Debugging attributes to node. Default is false.
+        /// </summary>
+        public bool OptionAddDebuggingAttributes;
+
+        /// <summary>
+        /// Defines if closing for non closed nodes must be done at the end or directly in the document.
+        /// Setting this to true can actually change how browsers render the page. Default is false.
+        /// </summary>
+        public bool OptionAutoCloseOnEnd; // close errors at the end
+
+        /// <summary>
+        /// Defines if non closed nodes will be checked at the end of parsing. Default is true.
+        /// </summary>
+        public bool OptionCheckSyntax = true;
+
+        /// <summary>
+        /// Defines if a checksum must be computed for the document while parsing. Default is false.
+        /// </summary>
+        public bool OptionComputeChecksum;
+
+        /// <summary>
+        /// Defines the default stream encoding to use. Default is System.Text.Encoding.Default.
+        /// </summary>
+        public Encoding OptionDefaultStreamEncoding = Encoding.Default;
+
+        /// <summary>
+        /// Defines if source text must be extracted while parsing errors.
+        /// If the document has a lot of errors, or cascading errors, parsing performance can be dramatically affected if set to true.
+        /// Default is false.
+        /// </summary>
+        public bool OptionExtractErrorSourceText;
+
+        // turning this on can dramatically slow performance if a lot of errors are detected
+
+        /// <summary>
+        /// Defines the maximum length of source text or parse errors. Default is 100.
+        /// </summary>
+        public int OptionExtractErrorSourceTextMaxLength = 100;
+
+        /// <summary>
+        /// Defines if LI, TR, TH, TD tags must be partially fixed when nesting errors are detected. Default is false.
+        /// </summary>
+        public bool OptionFixNestedTags; // fix li, tr, th, td tags
+
+        /// <summary>
+        /// Defines if output must conform to XML, instead of HTML.
+        /// </summary>
+        public bool OptionOutputAsXml;
+
+        /// <summary>
+        /// Defines if attribute value output must be optimized (not bound with double quotes if it is possible). Default is false.
+        /// </summary>
+        public bool OptionOutputOptimizeAttributeValues;
+
+        /// <summary>
+        /// Defines if name must be output with it's original case. Useful for asp.net tags and attributes
+        /// </summary>
+        public bool OptionOutputOriginalCase;
+
+        /// <summary>
+        /// Defines if name must be output in uppercase. Default is false.
+        /// </summary>
+        public bool OptionOutputUpperCase;
+
+        /// <summary>
+        /// Defines if declared encoding must be read from the document.
+        /// Declared encoding is determined using the meta http-equiv="content-type" content="text/html;charset=XXXXX" html node.
+        /// Default is true.
+        /// </summary>
+        public bool OptionReadEncoding = true;
+
+        /// <summary>
+        /// Defines the name of a node that will throw the StopperNodeException when found as an end node. Default is null.
+        /// </summary>
+        public string OptionStopperNodeName;
+
+        /// <summary>
+        /// Defines if the 'id' attribute must be specifically used. Default is true.
+        /// </summary>
+        public bool OptionUseIdAttribute = true;
+
+        /// <summary>
+        /// Defines if empty nodes must be written as closed during output. Default is false.
+        /// </summary>
+        public bool OptionWriteEmptyNodes;
+
+        #endregion
+
+        #region Static Members
+
+        internal static readonly string HtmlExceptionRefNotChild = "Reference node must be a child of this node";
+
+        internal static readonly string HtmlExceptionUseIdAttributeFalse =
+            "You need to set UseIdAttribute property to true to enable this feature";
+
+        #endregion
+
+        #region Constructors
+
+        /// <summary>
+        /// Creates an instance of an HTML document.
+        /// </summary>
+        public HtmlDocument()
+        {
+            _documentnode = CreateNode(HtmlNodeType.Document, 0);
+        }
+
+        #endregion
+
+        #region Properties
+
+        /// <summary>
+        /// Gets the document CRC32 checksum if OptionComputeChecksum was set to true before parsing, 0 otherwise.
+        /// </summary>
+        public int CheckSum
+        {
+            get
+            {
+                if (_crc32 == null)
+                {
+                    return 0;
+                }
+                else
+                {
+                    return (int) _crc32.CheckSum;
+                }
+            }
+        }
+
+        /// <summary>
+        /// Gets the document's declared encoding.
+        /// Declared encoding is determined using the meta http-equiv="content-type" content="text/html;charset=XXXXX" html node.
+        /// </summary>
+        public Encoding DeclaredEncoding
+        {
+            get { return _declaredencoding; }
+        }
+
+        /// <summary>
+        /// Gets the root node of the document.
+        /// </summary>
+        public HtmlNode DocumentNode
+        {
+            get { return _documentnode; }
+        }
+
+        /// <summary>
+        /// Gets the document's output encoding.
+        /// </summary>
+        public Encoding Encoding
+        {
+            get { return GetOutEncoding(); }
+        }
+
+        /// <summary>
+        /// Gets a list of parse errors found in the document.
+        /// </summary>
+        public IEnumerable<HtmlParseError> ParseErrors
+        {
+            get { return _parseerrors; }
+        }
+
+        /// <summary>
+        /// Gets the remaining text.
+        /// Will always be null if OptionStopperNodeName is null.
+        /// </summary>
+        public string Remainder
+        {
+            get { return _remainder; }
+        }
+
+        /// <summary>
+        /// Gets the offset of Remainder in the original Html text.
+        /// If OptionStopperNodeName is null, this will return the length of the original Html text.
+        /// </summary>
+        public int RemainderOffset
+        {
+            get { return _remainderOffset; }
+        }
+
+        /// <summary>
+        /// Gets the document's stream encoding.
+        /// </summary>
+        public Encoding StreamEncoding
+        {
+            get { return _streamencoding; }
+        }
+
+        #endregion
+
+        #region IXPathNavigable Members
+
+        /// <summary>
+        /// Creates a new XPathNavigator object for navigating this HTML document.
+        /// </summary>
+        /// <returns>An XPathNavigator object. The XPathNavigator is positioned on the root of the document.</returns>
+        public XPathNavigator CreateNavigator()
+        {
+            return new HtmlNodeNavigator(this, _documentnode);
+        }
+
+        #endregion
+
+        #region Public Methods
+
+        /// <summary>
+        /// Gets a valid XML name.
+        /// </summary>
+        /// <param name="name">Any text.</param>
+        /// <returns>A string that is a valid XML name.</returns>
+        public static string GetXmlName(string name)
+        {
+            string xmlname = string.Empty;
+            bool nameisok = true;
+            for (int i = 0; i < name.Length; i++)
+            {
+                // names are lcase
+                // note: we are very limited here, too much?
+                if (((name[i] >= 'a') && (name[i] <= 'z')) ||
+                    ((name[i] >= '0') && (name[i] <= '9')) ||
+                    //					(name[i]==':') || (name[i]=='_') || (name[i]=='-') || (name[i]=='.')) // these are bads in fact
+                    (name[i] == '_') || (name[i] == '-') || (name[i] == '.'))
+                {
+                    xmlname += name[i];
+                }
+                else
+                {
+                    nameisok = false;
+                    byte[] bytes = Encoding.UTF8.GetBytes(new char[] {name[i]});
+                    for (int j = 0; j < bytes.Length; j++)
+                    {
+                        xmlname += bytes[j].ToString("x2");
+                    }
+                    xmlname += "_";
+                }
+            }
+            if (nameisok)
+            {
+                return xmlname;
+            }
+            return "_" + xmlname;
+        }
+
+        /// <summary>
+        /// Applies HTML encoding to a specified string.
+        /// </summary>
+        /// <param name="html">The input string to encode. May not be null.</param>
+        /// <returns>The encoded string.</returns>
+        public static string HtmlEncode(string html)
+        {
+            if (html == null)
+            {
+                throw new ArgumentNullException("html");
+            }
+            // replace & by & but only once!
+            Regex rx = new Regex("&(?!(amp;)|(lt;)|(gt;)|(quot;))", RegexOptions.IgnoreCase);
+            return rx.Replace(html, "&").Replace("<", "<").Replace(">", ">").Replace("\"", """);
+        }
+
+        /// <summary>
+        /// Determines if the specified character is considered as a whitespace character.
+        /// </summary>
+        /// <param name="c">The character to check.</param>
+        /// <returns>true if if the specified character is considered as a whitespace character.</returns>
+        public static bool IsWhiteSpace(int c)
+        {
+            if ((c == 10) || (c == 13) || (c == 32) || (c == 9))
+            {
+                return true;
+            }
+            return false;
+        }
+
+        /// <summary>
+        /// Creates an HTML attribute with the specified name.
+        /// </summary>
+        /// <param name="name">The name of the attribute. May not be null.</param>
+        /// <returns>The new HTML attribute.</returns>
+        public HtmlAttribute CreateAttribute(string name)
+        {
+            if (name == null)
+            {
+                throw new ArgumentNullException("name");
+            }
+            HtmlAttribute att = CreateAttribute();
+            att.Name = name;
+            return att;
+        }
+
+        /// <summary>
+        /// Creates an HTML attribute with the specified name.
+        /// </summary>
+        /// <param name="name">The name of the attribute. May not be null.</param>
+        /// <param name="value">The value of the attribute.</param>
+        /// <returns>The new HTML attribute.</returns>
+        public HtmlAttribute CreateAttribute(string name, string value)
+        {
+            if (name == null)
+            {
+                throw new ArgumentNullException("name");
+            }
+            HtmlAttribute att = CreateAttribute(name);
+            att.Value = value;
+            return att;
+        }
+
+        /// <summary>
+        /// Creates an HTML comment node.
+        /// </summary>
+        /// <returns>The new HTML comment node.</returns>
+        public HtmlCommentNode CreateComment()
+        {
+            return (HtmlCommentNode) CreateNode(HtmlNodeType.Comment);
+        }
+
+        /// <summary>
+        /// Creates an HTML comment node with the specified comment text.
+        /// </summary>
+        /// <param name="comment">The comment text. May not be null.</param>
+        /// <returns>The new HTML comment node.</returns>
+        public HtmlCommentNode CreateComment(string comment)
+        {
+            if (comment == null)
+            {
+                throw new ArgumentNullException("comment");
+            }
+            HtmlCommentNode c = CreateComment();
+            c.Comment = comment;
+            return c;
+        }
+
+        /// <summary>
+        /// Creates an HTML element node with the specified name.
+        /// </summary>
+        /// <param name="name">The qualified name of the element. May not be null.</param>
+        /// <returns>The new HTML node.</returns>
+        public HtmlNode CreateElement(string name)
+        {
+            if (name == null)
+            {
+                throw new ArgumentNullException("name");
+            }
+            HtmlNode node = CreateNode(HtmlNodeType.Element);
+            node.Name = name;
+            return node;
+        }
+
+        /// <summary>
+        /// Creates an HTML text node.
+        /// </summary>
+        /// <returns>The new HTML text node.</returns>
+        public HtmlTextNode CreateTextNode()
+        {
+            return (HtmlTextNode) CreateNode(HtmlNodeType.Text);
+        }
+
+        /// <summary>
+        /// Creates an HTML text node with the specified text.
+        /// </summary>
+        /// <param name="text">The text of the node. May not be null.</param>
+        /// <returns>The new HTML text node.</returns>
+        public HtmlTextNode CreateTextNode(string text)
+        {
+            if (text == null)
+            {
+                throw new ArgumentNullException("text");
+            }
+            HtmlTextNode t = CreateTextNode();
+            t.Text = text;
+            return t;
+        }
+
+        /// <summary>
+        /// Detects the encoding of an HTML stream.
+        /// </summary>
+        /// <param name="stream">The input stream. May not be null.</param>
+        /// <returns>The detected encoding.</returns>
+        public Encoding DetectEncoding(Stream stream)
+        {
+            if (stream == null)
+            {
+                throw new ArgumentNullException("stream");
+            }
+            return DetectEncoding(new StreamReader(stream));
+        }
+
+        /// <summary>
+        /// Detects the encoding of an HTML file.
+        /// </summary>
+        /// <param name="path">Path for the file containing the HTML document to detect. May not be null.</param>
+        /// <returns>The detected encoding.</returns>
+        public Encoding DetectEncoding(string path)
+        {
+            if (path == null)
+            {
+                throw new ArgumentNullException("path");
+            }
+            StreamReader sr = new StreamReader(path, OptionDefaultStreamEncoding);
+            Encoding encoding = DetectEncoding(sr);
+            sr.Close();
+            return encoding;
+        }
+
+        /// <summary>
+        /// Detects the encoding of an HTML text provided on a TextReader.
+        /// </summary>
+        /// <param name="reader">The TextReader used to feed the HTML. May not be null.</param>
+        /// <returns>The detected encoding.</returns>
+        public Encoding DetectEncoding(TextReader reader)
+        {
+            if (reader == null)
+            {
+                throw new ArgumentNullException("reader");
+            }
+            _onlyDetectEncoding = true;
+            if (OptionCheckSyntax)
+            {
+                _openednodes = new Hashtable();
+            }
+            else
+            {
+                _openednodes = null;
+            }
+
+            if (OptionUseIdAttribute)
+            {
+                _nodesid = new Hashtable();
+            }
+            else
+            {
+                _nodesid = null;
+            }
+
+            StreamReader sr = reader as StreamReader;
+            if (sr != null)
+            {
+                _streamencoding = sr.CurrentEncoding;
+            }
+            else
+            {
+                _streamencoding = null;
+            }
+            _declaredencoding = null;
+
+            _text = reader.ReadToEnd();
+            _documentnode = CreateNode(HtmlNodeType.Document, 0);
+
+            // this is almost a hack, but it allows us not to muck with the original parsing code
+            try
+            {
+                Parse();
+            }
+            catch (EncodingFoundException ex)
+            {
+                return ex.Encoding;
+            }
+            return null;
+        }
+
+        /// <summary>
+        /// Detects the encoding of an HTML document from a file first, and then loads the file.
+        /// </summary>
+        /// <param name="path">The complete file path to be read.</param>
+        public void DetectEncodingAndLoad(string path)
+        {
+            DetectEncodingAndLoad(path, true);
+        }
+
+        /// <summary>
+        /// Detects the encoding of an HTML document from a file first, and then loads the file.
+        /// </summary>
+        /// <param name="path">The complete file path to be read. May not be null.</param>
+        /// <param name="detectEncoding">true to detect encoding, false otherwise.</param>
+        public void DetectEncodingAndLoad(string path, bool detectEncoding)
+        {
+            if (path == null)
+            {
+                throw new ArgumentNullException("path");
+            }
+            Encoding enc;
+            if (detectEncoding)
+            {
+                enc = DetectEncoding(path);
+            }
+            else
+            {
+                enc = null;
+            }
+
+            if (enc == null)
+            {
+                Load(path);
+            }
+            else
+            {
+                Load(path, enc);
+            }
+        }
+
+        /// <summary>
+        /// Detects the encoding of an HTML text.
+        /// </summary>
+        /// <param name="html">The input html text. May not be null.</param>
+        /// <returns>The detected encoding.</returns>
+        public Encoding DetectEncodingHtml(string html)
+        {
+            if (html == null)
+            {
+                throw new ArgumentNullException("html");
+            }
+            StringReader sr = new StringReader(html);
+            Encoding encoding = DetectEncoding(sr);
+            sr.Close();
+            return encoding;
+        }
+
+        /// <summary>
+        /// Gets the HTML node with the specified 'id' attribute value.
+        /// </summary>
+        /// <param name="id">The attribute id to match. May not be null.</param>
+        /// <returns>The HTML node with the matching id or null if not found.</returns>
+        public HtmlNode GetElementbyId(string id)
+        {
+            if (id == null)
+            {
+                throw new ArgumentNullException("id");
+            }
+            if (_nodesid == null)
+            {
+                throw new Exception(HtmlExceptionUseIdAttributeFalse);
+            }
+
+            return _nodesid[id.ToLower()] as HtmlNode;
+        }
+
+        /// <summary>
+        /// Loads an HTML document from a stream.
+        /// </summary>
+        /// <param name="stream">The input stream.</param>
+        public void Load(Stream stream)
+        {
+            Load(new StreamReader(stream, OptionDefaultStreamEncoding));
+        }
+
+        /// <summary>
+        /// Loads an HTML document from a stream.
+        /// </summary>
+        /// <param name="stream">The input stream.</param>
+        /// <param name="detectEncodingFromByteOrderMarks">Indicates whether to look for byte order marks at the beginning of the stream.</param>
+        public void Load(Stream stream, bool detectEncodingFromByteOrderMarks)
+        {
+            Load(new StreamReader(stream, detectEncodingFromByteOrderMarks));
+        }
+
+        /// <summary>
+        /// Loads an HTML document from a stream.
+        /// </summary>
+        /// <param name="stream">The input stream.</param>
+        /// <param name="encoding">The character encoding to use.</param>
+        public void Load(Stream stream, Encoding encoding)
+        {
+            Load(new StreamReader(stream, encoding));
+        }
+
+        /// <summary>
+        /// Loads an HTML document from a stream.
+        /// </summary>
+        /// <param name="stream">The input stream.</param>
+        /// <param name="encoding">The character encoding to use.</param>
+        /// <param name="detectEncodingFromByteOrderMarks">Indicates whether to look for byte order marks at the beginning of the stream.</param>
+        public void Load(Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks)
+        {
+            Load(new StreamReader(stream, encoding, detectEncodingFromByteOrderMarks));
+        }
+
+        /// <summary>
+        /// Loads an HTML document from a stream.
+        /// </summary>
+        /// <param name="stream">The input stream.</param>
+        /// <param name="encoding">The character encoding to use.</param>
+        /// <param name="detectEncodingFromByteOrderMarks">Indicates whether to look for byte order marks at the beginning of the stream.</param>
+        /// <param name="buffersize">The minimum buffer size.</param>
+        public void Load(Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks, int buffersize)
+        {
+            Load(new StreamReader(stream, encoding, detectEncodingFromByteOrderMarks, buffersize));
+        }
+
+        /// <summary>
+        /// Loads an HTML document from a file.
+        /// </summary>
+        /// <param name="path">The complete file path to be read. May not be null.</param>
+        public void Load(string path)
+        {
+            if (path == null)
+            {
+                throw new ArgumentNullException("path");
+            }
+            StreamReader sr = new StreamReader(path, OptionDefaultStreamEncoding);
+            Load(sr);
+            sr.Close();
+        }
+
+        /// <summary>
+        /// Loads an HTML document from a file.
+        /// </summary>
+        /// <param name="path">The complete file path to be read. May not be null.</param>
+        /// <param name="detectEncodingFromByteOrderMarks">Indicates whether to look for byte order marks at the beginning of the file.</param>
+        public void Load(string path, bool detectEncodingFromByteOrderMarks)
+        {
+            if (path == null)
+            {
+                throw new ArgumentNullException("path");
+            }
+            StreamReader sr = new StreamReader(path, detectEncodingFromByteOrderMarks);
+            Load(sr);
+            sr.Close();
+        }
+
+        /// <summary>
+        /// Loads an HTML document from a file.
+        /// </summary>
+        /// <param name="path">The complete file path to be read. May not be null.</param>
+        /// <param name="encoding">The character encoding to use. May not be null.</param>
+        public void Load(string path, Encoding encoding)
+        {
+            if (path == null)
+            {
+                throw new ArgumentNullException("path");
+            }
+            if (encoding == null)
+            {
+                throw new ArgumentNullException("encoding");
+            }
+            StreamReader sr = new StreamReader(path, encoding);
+            Load(sr);
+            sr.Close();
+        }
+
+        /// <summary>
+        /// Loads an HTML document from a file.
+        /// </summary>
+        /// <param name="path">The complete file path to be read. May not be null.</param>
+        /// <param name="encoding">The character encoding to use. May not be null.</param>
+        /// <param name="detectEncodingFromByteOrderMarks">Indicates whether to look for byte order marks at the beginning of the file.</param>
+        public void Load(string path, Encoding encoding, bool detectEncodingFromByteOrderMarks)
+        {
+            if (path == null)
+            {
+                throw new ArgumentNullException("path");
+            }
+            if (encoding == null)
+            {
+                throw new ArgumentNullException("encoding");
+            }
+            StreamReader sr = new StreamReader(path, encoding, detectEncodingFromByteOrderMarks);
+            Load(sr);
+            sr.Close();
+        }
+
+        /// <summary>
+        /// Loads an HTML document from a file.
+        /// </summary>
+        /// <param name="path">The complete file path to be read. May not be null.</param>
+        /// <param name="encoding">The character encoding to use. May not be null.</param>
+        /// <param name="detectEncodingFromByteOrderMarks">Indicates whether to look for byte order marks at the beginning of the file.</param>
+        /// <param name="buffersize">The minimum buffer size.</param>
+        public void Load(string path, Encoding encoding, bool detectEncodingFromByteOrderMarks, int buffersize)
+        {
+            if (path == null)
+            {
+                throw new ArgumentNullException("path");
+            }
+            if (encoding == null)
+            {
+                throw new ArgumentNullException("encoding");
+            }
+            StreamReader sr = new StreamReader(path, encoding, detectEncodingFromByteOrderMarks, buffersize);
+            Load(sr);
+            sr.Close();
+        }
+
+        /// <summary>
+        /// Loads the HTML document from the specified TextReader.
+        /// </summary>
+        /// <param name="reader">The TextReader used to feed the HTML data into the document. May not be null.</param>
+        public void Load(TextReader reader)
+        {
+            // all Load methods pass down to this one
+            if (reader == null)
+            {
+                throw new ArgumentNullException("reader");
+            }
+
+            _onlyDetectEncoding = false;
+
+            if (OptionCheckSyntax)
+            {
+                _openednodes = new Hashtable();
+            }
+            else
+            {
+                _openednodes = null;
+            }
+
+            if (OptionUseIdAttribute)
+            {
+                _nodesid = new Hashtable();
+            }
+            else
+            {
+                _nodesid = null;
+            }
+
+            StreamReader sr = reader as StreamReader;
+            if (sr != null)
+            {
+                try
+                {
+                    // trigger bom read if needed
+                    sr.Peek();
+                }
+                    // ReSharper disable EmptyGeneralCatchClause
+                catch (Exception)
+                    // ReSharper restore EmptyGeneralCatchClause
+                {
+                    // void on purpose
+                }
+                _streamencoding = sr.CurrentEncoding;
+            }
+            else
+            {
+                _streamencoding = null;
+            }
+            _declaredencoding = null;
+
+            _text = reader.ReadToEnd();
+            _documentnode = CreateNode(HtmlNodeType.Document, 0);
+            Parse();
+
+            if (OptionCheckSyntax)
+            {
+                foreach (HtmlNode node in _openednodes.Values)
+                {
+                    if (!node._starttag) // already reported
+                    {
+                        continue;
+                    }
+
+                    string html;
+                    if (OptionExtractErrorSourceText)
+                    {
+                        html = node.OuterHtml;
+                        if (html.Length > OptionExtractErrorSourceTextMaxLength)
+                        {
+                            html = html.Substring(0, OptionExtractErrorSourceTextMaxLength);
+                        }
+                    }
+                    else
+                    {
+                        html = string.Empty;
+                    }
+                    AddError(
+                        HtmlParseErrorCode.TagNotClosed,
+                        node._line, node._lineposition,
+                        node._streamposition, html,
+                        "End tag </" + node.Name + "> was not found");
+                }
+
+                // we don't need this anymore
+                _openednodes.Clear();
+            }
+        }
+
+        /// <summary>
+        /// Loads the HTML document from the specified string.
+        /// </summary>
+        /// <param name="html">String containing the HTML document to load. May not be null.</param>
+        public void LoadHtml(string html)
+        {
+            if (html == null)
+            {
+                throw new ArgumentNullException("html");
+            }
+            StringReader sr = new StringReader(html);
+            Load(sr);
+            sr.Close();
+        }
+
+        /// <summary>
+        /// Saves the HTML document to the specified stream.
+        /// </summary>
+        /// <param name="outStream">The stream to which you want to save.</param>
+        public void Save(Stream outStream)
+        {
+            StreamWriter sw = new StreamWriter(outStream, GetOutEncoding());
+            Save(sw);
+        }
+
+        /// <summary>
+        /// Saves the HTML document to the specified stream.
+        /// </summary>
+        /// <param name="outStream">The stream to which you want to save. May not be null.</param>
+        /// <param name="encoding">The character encoding to use. May not be null.</param>
+        public void Save(Stream outStream, Encoding encoding)
+        {
+            if (outStream == null)
+            {
+                throw new ArgumentNullException("outStream");
+            }
+            if (encoding == null)
+            {
+                throw new ArgumentNullException("encoding");
+            }
+            StreamWriter sw = new StreamWriter(outStream, encoding);
+            Save(sw);
+        }
+
+        /// <summary>
+        /// Saves the mixed document to the specified file.
+        /// </summary>
+        /// <param name="filename">The location of the file where you want to save the document.</param>
+        public void Save(string filename)
+        {
+            StreamWriter sw = new StreamWriter(filename, false, GetOutEncoding());
+            Save(sw);
+            sw.Close();
+        }
+
+        /// <summary>
+        /// Saves the mixed document to the specified file.
+        /// </summary>
+        /// <param name="filename">The location of the file where you want to save the document. May not be null.</param>
+        /// <param name="encoding">The character encoding to use. May not be null.</param>
+        public void Save(string filename, Encoding encoding)
+        {
+            if (filename == null)
+            {
+                throw new ArgumentNullException("filename");
+            }
+            if (encoding == null)
+            {
+                throw new ArgumentNullException("encoding");
+            }
+            StreamWriter sw = new StreamWriter(filename, false, encoding);
+            Save(sw);
+            sw.Close();
+        }
+
+        /// <summary>
+        /// Saves the HTML document to the specified StreamWriter.
+        /// </summary>
+        /// <param name="writer">The StreamWriter to which you want to save.</param>
+        public void Save(StreamWriter writer)
+        {
+            Save((TextWriter) writer);
+        }
+
+        /// <summary>
+        /// Saves the HTML document to the specified TextWriter.
+        /// </summary>
+        /// <param name="writer">The TextWriter to which you want to save. May not be null.</param>
+        public void Save(TextWriter writer)
+        {
+            if (writer == null)
+            {
+                throw new ArgumentNullException("writer");
+            }
+            DocumentNode.WriteTo(writer);
+        }
+
+        /// <summary>
+        /// Saves the HTML document to the specified XmlWriter.
+        /// </summary>
+        /// <param name="writer">The XmlWriter to which you want to save.</param>
+        public void Save(XmlWriter writer)
+        {
+            DocumentNode.WriteTo(writer);
+            writer.Flush();
+        }
+
+        #endregion
+
+        #region Internal Methods
+
+        internal HtmlAttribute CreateAttribute()
+        {
+            return new HtmlAttribute(this);
+        }
+
+        internal HtmlNode CreateNode(HtmlNodeType type)
+        {
+            return CreateNode(type, -1);
+        }
+
+        internal HtmlNode CreateNode(HtmlNodeType type, int index)
+        {
+            switch (type)
+            {
+                case HtmlNodeType.Comment:
+                    return new HtmlCommentNode(this, index);
+
+                case HtmlNodeType.Text:
+                    return new HtmlTextNode(this, index);
+
+                default:
+                    return new HtmlNode(type, this, index);
+            }
+        }
+
+        internal Encoding GetOutEncoding()
+        {
+            // when unspecified, use the stream encoding first
+            if (_declaredencoding != null)
+            {
+                return _declaredencoding;
+            }
+            else
+            {
+                if (_streamencoding != null)
+                {
+                    return _streamencoding;
+                }
+            }
+            return OptionDefaultStreamEncoding;
+        }
+
+        internal HtmlNode GetXmlDeclaration()
+        {
+            if (!_documentnode.HasChildNodes)
+            {
+                return null;
+            }
+
+            foreach (HtmlNode node in _documentnode._childnodes)
+            {
+                if (node.Name == "?xml") // it's ok, names are case sensitive
+                {
+                    return node;
+                }
+            }
+            return null;
+        }
+
+        internal void SetIdForNode(HtmlNode node, string id)
+        {
+            if (!OptionUseIdAttribute)
+            {
+                return;
+            }
+
+            if ((_nodesid == null) || (id == null))
+            {
+                return;
+            }
+
+            if (node == null)
+            {
+                _nodesid.Remove(id.ToLower());
+            }
+            else
+            {
+                _nodesid[id.ToLower()] = node;
+            }
+        }
+
+        internal void UpdateLastParentNode()
+        {
+            do
+            {
+                if (_lastparentnode.Closed)
+                {
+                    _lastparentnode = _lastparentnode.ParentNode;
+                }
+            } while ((_lastparentnode != null) && (_lastparentnode.Closed));
+            if (_lastparentnode == null)
+            {
+                _lastparentnode = _documentnode;
+            }
+        }
+
+        #endregion
+
+        #region Private Methods
+
+        private HtmlParseError AddError(
+            HtmlParseErrorCode code,
+            int line,
+            int linePosition,
+            int streamPosition,
+            string sourceText,
+            string reason)
+        {
+            HtmlParseError err = new HtmlParseError(code, line, linePosition, streamPosition, sourceText, reason);
+            _parseerrors.Add(err);
+            return err;
+        }
+
+        private void CloseCurrentNode()
+        {
+            if (_currentnode.Closed) // text or document are by def closed
+                return;
+
+            bool error = false;
+
+            // find last node of this kind
+            HtmlNode prev = (HtmlNode) _lastnodes[_currentnode.Name];
+            if (prev == null)
+            {
+                if (HtmlNode.IsClosedElement(_currentnode.Name))
+                {
+                    // </br> will be seen as <br>
+                    _currentnode.CloseNode(_currentnode);
+
+                    // add to parent node
+                    if (_lastparentnode != null)
+                    {
+                        HtmlNode foundNode = null;
+                        Stack futureChild = new Stack();
+                        for (HtmlNode node = _lastparentnode.LastChild; node != null; node = node.PreviousSibling)
+                        {
+                            if ((node.Name == _currentnode.Name) && (!node.HasChildNodes))
+                            {
+                                foundNode = node;
+                                break;
+                            }
+                            futureChild.Push(node);
+                        }
+                        if (foundNode != null)
+                        {
+                            HtmlNode node = null;
+                            while (futureChild.Count != 0)
+                            {
+                                node = (HtmlNode) futureChild.Pop();
+                                _lastparentnode.RemoveChild(node);
+                                foundNode.AppendChild(node);
+                            }
+                        }
+                        else
+                        {
+                            _lastparentnode.AppendChild(_currentnode);
+                        }
+                    }
+                }
+                else
+                {
+                    // node has no parent
+                    // node is not a closed node
+
+                    if (HtmlNode.CanOverlapElement(_currentnode.Name))
+                    {
+                        // this is a hack: add it as a text node
+                        HtmlNode closenode = CreateNode(HtmlNodeType.Text, _currentnode._outerstartindex);
+                        closenode._outerlength = _currentnode._outerlength;
+                        ((HtmlTextNode) closenode).Text = ((HtmlTextNode) closenode).Text.ToLower();
+                        if (_lastparentnode != null)
+                        {
+                            _lastparentnode.AppendChild(closenode);
+                        }
+                    }
+                    else
+                    {
+                        if (HtmlNode.IsEmptyElement(_currentnode.Name))
+                        {
+                            AddError(
+                                HtmlParseErrorCode.EndTagNotRequired,
+                                _currentnode._line, _currentnode._lineposition,
+                                _currentnode._streamposition, _currentnode.OuterHtml,
+                                "End tag </" + _currentnode.Name + "> is not required");
+                        }
+                        else
+                        {
+                            // node cannot overlap, node is not empty
+                            AddError(
+                                HtmlParseErrorCode.TagNotOpened,
+                                _currentnode._line, _currentnode._lineposition,
+                                _currentnode._streamposition, _currentnode.OuterHtml,
+                                "Start tag <" + _currentnode.Name + "> was not found");
+                            error = true;
+                        }
+                    }
+                }
+            }
+            else
+            {
+                if (OptionFixNestedTags)
+                {
+                    if (FindResetterNodes(prev, GetResetters(_currentnode.Name)))
+                    {
+                        AddError(
+                            HtmlParseErrorCode.EndTagInvalidHere,
+                            _currentnode._line, _currentnode._lineposition,
+                            _currentnode._streamposition, _currentnode.OuterHtml,
+                            "End tag </" + _currentnode.Name + "> invalid here");
+                        error = true;
+                    }
+                }
+
+                if (!error)
+                {
+                    _lastnodes[_currentnode.Name] = prev._prevwithsamename;
+                    prev.CloseNode(_currentnode);
+                }
+            }
+
+
+            // we close this node, get grandparent
+            if (!error)
+            {
+                if ((_lastparentnode != null) &&
+                    ((!HtmlNode.IsClosedElement(_currentnode.Name)) ||
+                     (_currentnode._starttag)))
+                {
+                    UpdateLastParentNode();
+                }
+            }
+        }
+
+        private string CurrentAttributeName()
+        {
+            return _text.Substring(_currentattribute._namestartindex, _currentattribute._namelength);
+        }
+
+        private string CurrentAttributeValue()
+        {
+            return _text.Substring(_currentattribute._valuestartindex, _currentattribute._valuelength);
+        }
+
+        private string CurrentNodeInner()
+        {
+            return _text.Substring(_currentnode._innerstartindex, _currentnode._innerlength);
+        }
+
+        private string CurrentNodeName()
+        {
+            return _text.Substring(_currentnode._namestartindex, _currentnode._namelength);
+        }
+
+        private string CurrentNodeOuter()
+        {
+            return _text.Substring(_currentnode._outerstartindex, _currentnode._outerlength);
+        }
+
+
+        private void DecrementPosition()
+        {
+            _index--;
+            if (_lineposition == 1)
+            {
+                _lineposition = _maxlineposition;
+                _line--;
+            }
+            else
+            {
+                _lineposition--;
+            }
+        }
+
+        private HtmlNode FindResetterNode(HtmlNode node, string name)
+        {
+            HtmlNode resetter = (HtmlNode) _lastnodes[name];
+            if (resetter == null)
+                return null;
+            if (resetter.Closed)
+            {
+                return null;
+            }
+            if (resetter._streamposition < node._streamposition)
+            {
+                return null;
+            }
+            return resetter;
+        }
+
+        private bool FindResetterNodes(HtmlNode node, string[] names)
+        {
+            if (names == null)
+            {
+                return false;
+            }
+            for (int i = 0; i < names.Length; i++)
+            {
+                if (FindResetterNode(node, names[i]) != null)
+                {
+                    return true;
+                }
+            }
+            return false;
+        }
+
+        private void FixNestedTag(string name, string[] resetters)
+        {
+            if (resetters == null)
+                return;
+
+            HtmlNode prev;
+
+            // if we find a previous unclosed same name node, without a resetter node between, we must close it
+            prev = (HtmlNode) _lastnodes[name];
+            if ((prev != null) && (!prev.Closed))
+            {
+                // try to find a resetter node, if found, we do nothing
+                if (FindResetterNodes(prev, resetters))
+                {
+                    return;
+                }
+
+                // ok we need to close the prev now
+                // create a fake closer node
+                HtmlNode close = new HtmlNode(prev.NodeType, this, -1);
+                close._endnode = close;
+                prev.CloseNode(close);
+            }
+        }
+
+        private void FixNestedTags()
+        {
+            // we are only interested by start tags, not closing tags
+            if (!_currentnode._starttag)
+                return;
+
+            string name = CurrentNodeName();
+            FixNestedTag(name, GetResetters(name));
+        }
+
+        private string[] GetResetters(string name)
+        {
+            switch (name)
+            {
+                case "li":
+                    return new string[] {"ul"};
+
+                case "tr":
+                    return new string[] {"table"};
+
+                case "th":
+                case "td":
+                    return new string[] {"tr", "table"};
+
+                default:
+                    return null;
+            }
+        }
+
+        private void IncrementPosition()
+        {
+            if (_crc32 != null)
+            {
+                // REVIEW: should we add some checksum code in DecrementPosition too?
+                _crc32.AddToCRC32(_c);
+            }
+
+            _index++;
+            _maxlineposition = _lineposition;
+            if (_c == 10)
+            {
+                _lineposition = 1;
+                _line++;
+            }
+            else
+            {
+                _lineposition++;
+            }
+        }
+
+        private bool NewCheck()
+        {
+            if (_c != '<')
+            {
+                return false;
+            }
+            if (_index < _text.Length)
+            {
+                if (_text[_index] == '%')
+                {
+                    switch (_state)
+                    {
+                        case ParseState.AttributeAfterEquals:
+                            PushAttributeValueStart(_index - 1);
+                            break;
+
+                        case ParseState.BetweenAttributes:
+                            PushAttributeNameStart(_index - 1);
+                            break;
+
+                        case ParseState.WhichTag:
+                            PushNodeNameStart(true, _index - 1);
+                            _state = ParseState.Tag;
+                            break;
+                    }
+                    _oldstate = _state;
+                    _state = ParseState.ServerSideCode;
+                    return true;
+                }
+            }
+
+            if (!PushNodeEnd(_index - 1, true))
+            {
+                // stop parsing
+                _index = _text.Length;
+                return true;
+            }
+            _state = ParseState.WhichTag;
+            if ((_index - 1) <= (_text.Length - 2))
+            {
+                if (_text[_index] == '!')
+                {
+                    PushNodeStart(HtmlNodeType.Comment, _index - 1);
+                    PushNodeNameStart(true, _index);
+                    PushNodeNameEnd(_index + 1);
+                    _state = ParseState.Comment;
+                    if (_index < (_text.Length - 2))
+                    {
+                        if ((_text[_index + 1] == '-') &&
+                            (_text[_index + 2] == '-'))
+                        {
+                            _fullcomment = true;
+                        }
+                        else
+                        {
+                            _fullcomment = false;
+                        }
+                    }
+                    return true;
+                }
+            }
+            PushNodeStart(HtmlNodeType.Element, _index - 1);
+            return true;
+        }
+
+        private void Parse()
+        {
+            int lastquote = 0;
+            if (OptionComputeChecksum)
+            {
+                _crc32 = new Crc32();
+            }
+
+            _lastnodes = new Hashtable();
+            _c = 0;
+            _fullcomment = false;
+            _parseerrors = new List<HtmlParseError>();
+            _line = 1;
+            _lineposition = 1;
+            _maxlineposition = 1;
+
+            _state = ParseState.Text;
+            _oldstate = _state;
+            _documentnode._innerlength = _text.Length;
+            _documentnode._outerlength = _text.Length;
+            _remainderOffset = _text.Length;
+
+            _lastparentnode = _documentnode;
+            _currentnode = CreateNode(HtmlNodeType.Text, 0);
+            _currentattribute = null;
+
+            _index = 0;
+            PushNodeStart(HtmlNodeType.Text, 0);
+            while (_index < _text.Length)
+            {
+                _c = _text[_index];
+                IncrementPosition();
+
+                switch (_state)
+                {
+                    case ParseState.Text:
+                        if (NewCheck())
+                            continue;
+                        break;
+
+                    case ParseState.WhichTag:
+                        if (NewCheck())
+                            continue;
+                        if (_c == '/')
+                        {
+                            PushNodeNameStart(false, _index);
+                        }
+                        else
+                        {
+                            PushNodeNameStart(true, _index - 1);
+                            DecrementPosition();
+                        }
+                        _state = ParseState.Tag;
+                        break;
+
+                    case ParseState.Tag:
+                        if (NewCheck())
+                            continue;
+                        if (IsWhiteSpace(_c))
+                        {
+                            PushNodeNameEnd(_index - 1);
+                            if (_state != ParseState.Tag)
+                                continue;
+                            _state = ParseState.BetweenAttributes;
+                            continue;
+                        }
+                        if (_c == '/')
+                        {
+                            PushNodeNameEnd(_index - 1);
+                            if (_state != ParseState.Tag)
+                                continue;
+                            _state = ParseState.EmptyTag;
+                            continue;
+                        }
+                        if (_c == '>')
+                        {
+                            PushNodeNameEnd(_index - 1);
+                            if (_state != ParseState.Tag)
+                                continue;
+                            if (!PushNodeEnd(_index, false))
+                            {
+                                // stop parsing
+                                _index = _text.Length;
+                                break;
+                            }
+                            if (_state != ParseState.Tag)
+                                continue;
+                            _state = ParseState.Text;
+                            PushNodeStart(HtmlNodeType.Text, _index);
+                        }
+                        break;
+
+                    case ParseState.BetweenAttributes:
+                        if (NewCheck())
+                            continue;
+
+                        if (IsWhiteSpace(_c))
+                            continue;
+
+                        if ((_c == '/') || (_c == '?'))
+                        {
+                            _state = ParseState.EmptyTag;
+                            continue;
+                        }
+
+                        if (_c == '>')
+                        {
+                            if (!PushNodeEnd(_index, false))
+                            {
+                                // stop parsing
+                                _index = _text.Length;
+                                break;
+                            }
+
+                            if (_state != ParseState.BetweenAttributes)
+                                continue;
+                            _state = ParseState.Text;
+                            PushNodeStart(HtmlNodeType.Text, _index);
+                            continue;
+                        }
+
+                        PushAttributeNameStart(_index - 1);
+                        _state = ParseState.AttributeName;
+                        break;
+
+                    case ParseState.EmptyTag:
+                        if (NewCheck())
+                            continue;
+
+                        if (_c == '>')
+                        {
+                            if (!PushNodeEnd(_index, true))
+                            {
+                                // stop parsing
+                                _index = _text.Length;
+                                break;
+                            }
+
+                            if (_state != ParseState.EmptyTag)
+                                continue;
+                            _state = ParseState.Text;
+                            PushNodeStart(HtmlNodeType.Text, _index);
+                            continue;
+                        }
+                        _state = ParseState.BetweenAttributes;
+                        break;
+
+                    case ParseState.AttributeName:
+                        if (NewCheck())
+                            continue;
+
+                        if (IsWhiteSpace(_c))
+                        {
+                            PushAttributeNameEnd(_index - 1);
+                            _state = ParseState.AttributeBeforeEquals;
+                            continue;
+                        }
+                        if (_c == '=')
+                        {
+                            PushAttributeNameEnd(_index - 1);
+                            _state = ParseState.AttributeAfterEquals;
+                            continue;
+                        }
+                        if (_c == '>')
+                        {
+                            PushAttributeNameEnd(_index - 1);
+                            if (!PushNodeEnd(_index, false))
+                            {
+                                // stop parsing
+                                _index = _text.Length;
+                                break;
+                            }
+                            if (_state != ParseState.AttributeName)
+                                continue;
+                            _state = ParseState.Text;
+                            PushNodeStart(HtmlNodeType.Text, _index);
+                            continue;
+                        }
+                        break;
+
+                    case ParseState.AttributeBeforeEquals:
+                        if (NewCheck())
+                            continue;
+
+                        if (IsWhiteSpace(_c))
+                            continue;
+                        if (_c == '>')
+                        {
+                            if (!PushNodeEnd(_index, false))
+                            {
+                                // stop parsing
+                                _index = _text.Length;
+                                break;
+                            }
+                            if (_state != ParseState.AttributeBeforeEquals)
+                                continue;
+                            _state = ParseState.Text;
+                            PushNodeStart(HtmlNodeType.Text, _index);
+                            continue;
+                        }
+                        if (_c == '=')
+                        {
+                            _state = ParseState.AttributeAfterEquals;
+                            continue;
+                        }
+                        // no equals, no whitespace, it's a new attrribute starting
+                        _state = ParseState.BetweenAttributes;
+                        DecrementPosition();
+                        break;
+
+                    case ParseState.AttributeAfterEquals:
+                        if (NewCheck())
+                            continue;
+
+                        if (IsWhiteSpace(_c))
+                            continue;
+
+                        if ((_c == '\'') || (_c == '"'))
+                        {
+                            _state = ParseState.QuotedAttributeValue;
+                            PushAttributeValueStart(_index, _c);
+                            lastquote = _c;
+                            continue;
+                        }
+                        if (_c == '>')
+                        {
+                            if (!PushNodeEnd(_index, false))
+                            {
+                                // stop parsing
+                                _index = _text.Length;
+                                break;
+                            }
+                            if (_state != ParseState.AttributeAfterEquals)
+                                continue;
+                            _state = ParseState.Text;
+                            PushNodeStart(HtmlNodeType.Text, _index);
+                            continue;
+                        }
+                        PushAttributeValueStart(_index - 1);
+                        _state = ParseState.AttributeValue;
+                        break;
+
+                    case ParseState.AttributeValue:
+                        if (NewCheck())
+                            continue;
+
+                        if (IsWhiteSpace(_c))
+                        {
+                            PushAttributeValueEnd(_index - 1);
+                            _state = ParseState.BetweenAttributes;
+                            continue;
+                        }
+
+                        if (_c == '>')
+                        {
+                            PushAttributeValueEnd(_index - 1);
+                            if (!PushNodeEnd(_index, false))
+                            {
+                                // stop parsing
+                                _index = _text.Length;
+                                break;
+                            }
+                            if (_state != ParseState.AttributeValue)
+                                continue;
+                            _state = ParseState.Text;
+                            PushNodeStart(HtmlNodeType.Text, _index);
+                            continue;
+                        }
+                        break;
+
+                    case ParseState.QuotedAttributeValue:
+                        if (_c == lastquote)
+                        {
+                            PushAttributeValueEnd(_index - 1);
+                            _state = ParseState.BetweenAttributes;
+                            continue;
+                        }
+                        if (_c == '<')
+                        {
+                            if (_index < _text.Length)
+                            {
+                                if (_text[_index] == '%')
+                                {
+                                    _oldstate = _state;
+                                    _state = ParseState.ServerSideCode;
+                                    continue;
+                                }
+                            }
+                        }
+                        break;
+
+                    case ParseState.Comment:
+                        if (_c == '>')
+                        {
+                            if (_fullcomment)
+                            {
+                                if ((_text[_index - 2] != '-') ||
+                                    (_text[_index - 3] != '-'))
+                                {
+                                    continue;
+                                }
+                            }
+                            if (!PushNodeEnd(_index, false))
+                            {
+                                // stop parsing
+                                _index = _text.Length;
+                                break;
+                            }
+                            _state = ParseState.Text;
+                            PushNodeStart(HtmlNodeType.Text, _index);
+                            continue;
+                        }
+                        break;
+
+                    case ParseState.ServerSideCode:
+                        if (_c == '%')
+                        {
+                            if (_index < _text.Length)
+                            {
+                                if (_text[_index] == '>')
+                                {
+                                    switch (_oldstate)
+                                    {
+                                        case ParseState.AttributeAfterEquals:
+                                            _state = ParseState.AttributeValue;
+                                            break;
+
+                                        case ParseState.BetweenAttributes:
+                                            PushAttributeNameEnd(_index + 1);
+                                            _state = ParseState.BetweenAttributes;
+                                            break;
+
+                                        default:
+                                            _state = _oldstate;
+                                            break;
+                                    }
+                                    IncrementPosition();
+                                }
+                            }
+                        }
+                        break;
+
+                    case ParseState.PcData:
+                        // look for </tag + 1 char
+
+                        // check buffer end
+                        if ((_currentnode._namelength + 3) <= (_text.Length - (_index - 1)))
+                        {
+                            if (string.Compare(_text.Substring(_index - 1, _currentnode._namelength + 2),
+                                               "</" + _currentnode.Name, true) == 0)
+                            {
+                                int c = _text[_index - 1 + 2 + _currentnode.Name.Length];
+                                if ((c == '>') || (IsWhiteSpace(c)))
+                                {
+                                    // add the script as a text node
+                                    HtmlNode script = CreateNode(HtmlNodeType.Text,
+                                                                 _currentnode._outerstartindex +
+                                                                 _currentnode._outerlength);
+                                    script._outerlength = _index - 1 - script._outerstartindex;
+                                    _currentnode.AppendChild(script);
+
+
+                                    PushNodeStart(HtmlNodeType.Element, _index - 1);
+                                    PushNodeNameStart(false, _index - 1 + 2);
+                                    _state = ParseState.Tag;
+                                    IncrementPosition();
+                                }
+                            }
+                        }
+                        break;
+                }
+            }
+
+            // finish the current work
+            if (_currentnode._namestartindex > 0)
+            {
+                PushNodeNameEnd(_index);
+            }
+            PushNodeEnd(_index, false);
+
+            // we don't need this anymore
+            _lastnodes.Clear();
+        }
+
+        private void PushAttributeNameEnd(int index)
+        {
+            _currentattribute._namelength = index - _currentattribute._namestartindex;
+            _currentnode.Attributes.Append(_currentattribute);
+        }
+
+        private void PushAttributeNameStart(int index)
+        {
+            _currentattribute = CreateAttribute();
+            _currentattribute._namestartindex = index;
+            _currentattribute.Line = _line;
+            _currentattribute._lineposition = _lineposition;
+            _currentattribute._streamposition = index;
+        }
+
+        private void PushAttributeValueEnd(int index)
+        {
+            _currentattribute._valuelength = index - _currentattribute._valuestartindex;
+        }
+
+        private void PushAttributeValueStart(int index)
+        {
+            PushAttributeValueStart(index, 0);
+        }
+
+        private void PushAttributeValueStart(int index, int quote)
+        {
+            _currentattribute._valuestartindex = index;
+            if (quote == '\'')
+                _currentattribute.QuoteType = AttributeValueQuote.SingleQuote;
+        }
+
+        private bool PushNodeEnd(int index, bool close)
+        {
+            _currentnode._outerlength = index - _currentnode._outerstartindex;
+
+            if ((_currentnode._nodetype == HtmlNodeType.Text) ||
+                (_currentnode._nodetype == HtmlNodeType.Comment))
+            {
+                // forget about void nodes
+                if (_currentnode._outerlength > 0)
+                {
+                    _currentnode._innerlength = _currentnode._outerlength;
+                    _currentnode._innerstartindex = _currentnode._outerstartindex;
+                    if (_lastparentnode != null)
+                    {
+                        _lastparentnode.AppendChild(_currentnode);
+                    }
+                }
+            }
+            else
+            {
+                if ((_currentnode._starttag) && (_lastparentnode != _currentnode))
+                {
+                    // add to parent node
+                    if (_lastparentnode != null)
+                    {
+                        _lastparentnode.AppendChild(_currentnode);
+                    }
+
+                    ReadDocumentEncoding(_currentnode);
+
+                    // remember last node of this kind
+                    HtmlNode prev = (HtmlNode) _lastnodes[_currentnode.Name];
+                    _currentnode._prevwithsamename = prev;
+                    _lastnodes[_currentnode.Name] = _currentnode;
+
+                    // change parent?
+                    if ((_currentnode.NodeType == HtmlNodeType.Document) ||
+                        (_currentnode.NodeType == HtmlNodeType.Element))
+                    {
+                        _lastparentnode = _currentnode;
+                    }
+
+                    if (HtmlNode.IsCDataElement(CurrentNodeName()))
+                    {
+                        _state = ParseState.PcData;
+                        return true;
+                    }
+
+                    if ((HtmlNode.IsClosedElement(_currentnode.Name)) ||
+                        (HtmlNode.IsEmptyElement(_currentnode.Name)))
+                    {
+                        close = true;
+                    }
+                }
+            }
+
+            if ((close) || (!_currentnode._starttag))
+            {
+                if ((OptionStopperNodeName != null) && (_remainder == null) &&
+                    (string.Compare(_currentnode.Name, OptionStopperNodeName, true) == 0))
+                {
+                    _remainderOffset = index;
+                    _remainder = _text.Substring(_remainderOffset);
+                    CloseCurrentNode();
+                    return false; // stop parsing
+                }
+                CloseCurrentNode();
+            }
+            return true;
+        }
+
+        private void PushNodeNameEnd(int index)
+        {
+            _currentnode._namelength = index - _currentnode._namestartindex;
+            if (OptionFixNestedTags)
+            {
+                FixNestedTags();
+            }
+        }
+
+        private void PushNodeNameStart(bool starttag, int index)
+        {
+            _currentnode._starttag = starttag;
+            _currentnode._namestartindex = index;
+        }
+
+        private void PushNodeStart(HtmlNodeType type, int index)
+        {
+            _currentnode = CreateNode(type, index);
+            _currentnode._line = _line;
+            _currentnode._lineposition = _lineposition;
+            if (type == HtmlNodeType.Element)
+            {
+                _currentnode._lineposition--;
+            }
+            _currentnode._streamposition = index;
+        }
+
+        private void ReadDocumentEncoding(HtmlNode node)
+        {
+            if (!OptionReadEncoding)
+                return;
+            // format is 
+            // <meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
+
+            // when we append a child, we are in node end, so attributes are already populated
+            if (node._namelength == 4) // quick check, avoids string alloc
+            {
+                if (node.Name == "meta") // all nodes names are lowercase
+                {
+                    HtmlAttribute att = node.Attributes["http-equiv"];
+                    if (att != null)
+                    {
+                        if (string.Compare(att.Value, "content-type", true) == 0)
+                        {
+                            HtmlAttribute content = node.Attributes["content"];
+                            if (content != null)
+                            {
+                                string charset = NameValuePairList.GetNameValuePairsValue(content.Value, "charset");
+                                if (charset != null && (charset = charset.Trim()).Length > 0)
+                                {
+                                    _declaredencoding = Encoding.GetEncoding(charset.Trim());
+                                    if (_onlyDetectEncoding)
+                                    {
+                                        throw new EncodingFoundException(_declaredencoding);
+                                    }
+
+                                    if (_streamencoding != null)
+                                    {
+                                        if (_declaredencoding.WindowsCodePage != _streamencoding.WindowsCodePage)
+                                        {
+                                            AddError(
+                                                HtmlParseErrorCode.CharsetMismatch,
+                                                _line, _lineposition,
+                                                _index, node.OuterHtml,
+                                                "Encoding mismatch between StreamEncoding: " +
+                                                _streamencoding.WebName + " and DeclaredEncoding: " +
+                                                _declaredencoding.WebName);
+                                        }
+                                    }
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+        }
+
+        #endregion
+
+        #region Nested type: ParseState
+
+        private enum ParseState
+        {
+            Text,
+            WhichTag,
+            Tag,
+            BetweenAttributes,
+            EmptyTag,
+            AttributeName,
+            AttributeBeforeEquals,
+            AttributeAfterEquals,
+            AttributeValue,
+            Comment,
+            QuotedAttributeValue,
+            ServerSideCode,
+            PcData
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/HtmlElementFlag.cs b/docs/HtmlAgilityPack/HtmlElementFlag.cs
new file mode 100644
index 0000000..01232cd
--- /dev/null
+++ b/docs/HtmlAgilityPack/HtmlElementFlag.cs
@@ -0,0 +1,32 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+using System;
+
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// Flags that describe the behavior of an Element node.
+    /// </summary>
+    [Flags]
+    public enum HtmlElementFlag
+    {
+        /// <summary>
+        /// The node is a CDATA node.
+        /// </summary>
+        CData = 1,
+
+        /// <summary>
+        /// The node is empty. META or IMG are example of such nodes.
+        /// </summary>
+        Empty = 2,
+
+        /// <summary>
+        /// The node will automatically be closed during parsing.
+        /// </summary>
+        Closed = 4,
+
+        /// <summary>
+        /// The node can overlap.
+        /// </summary>
+        CanOverlap = 8
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/HtmlEntity.cs b/docs/HtmlAgilityPack/HtmlEntity.cs
new file mode 100644
index 0000000..b79404d
--- /dev/null
+++ b/docs/HtmlAgilityPack/HtmlEntity.cs
@@ -0,0 +1,826 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+using System;
+using System.Collections;
+using System.Text;
+
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// A utility class to replace special characters by entities and vice-versa.
+    /// Follows HTML 4.0 specification found at http://www.w3.org/TR/html4/sgml/entities.html
+    /// </summary>
+    public class HtmlEntity
+    {
+        #region Static Members
+
+        private static readonly int _maxEntitySize;
+        private static Hashtable _entityName;
+        private static Hashtable _entityValue;
+
+        /// <summary>
+        /// A collection of entities indexed by name.
+        /// </summary>
+        public static Hashtable EntityName
+        {
+            get { return _entityName; }
+        }
+
+        /// <summary>
+        /// A collection of entities indexed by value.
+        /// </summary>
+        public static Hashtable EntityValue
+        {
+            get { return _entityValue; }
+        }
+
+        #endregion
+
+        #region Constructors
+
+        static HtmlEntity()
+        {
+            _entityName = new Hashtable();
+            _entityValue = new Hashtable();
+
+            #region Entities Definition
+
+            _entityValue.Add("nbsp", 160); // no-break space = non-breaking space, U+00A0 ISOnum 
+            _entityName.Add(160, "nbsp");
+            _entityValue.Add("iexcl", 161); // inverted exclamation mark, U+00A1 ISOnum 
+            _entityName.Add(161, "iexcl");
+            _entityValue.Add("cent", 162); // cent sign, U+00A2 ISOnum 
+            _entityName.Add(162, "cent");
+            _entityValue.Add("pound", 163); // pound sign, U+00A3 ISOnum 
+            _entityName.Add(163, "pound");
+            _entityValue.Add("curren", 164); // currency sign, U+00A4 ISOnum 
+            _entityName.Add(164, "curren");
+            _entityValue.Add("yen", 165); // yen sign = yuan sign, U+00A5 ISOnum 
+            _entityName.Add(165, "yen");
+            _entityValue.Add("brvbar", 166); // broken bar = broken vertical bar, U+00A6 ISOnum 
+            _entityName.Add(166, "brvbar");
+            _entityValue.Add("sect", 167); // section sign, U+00A7 ISOnum 
+            _entityName.Add(167, "sect");
+            _entityValue.Add("uml", 168); // diaeresis = spacing diaeresis, U+00A8 ISOdia 
+            _entityName.Add(168, "uml");
+            _entityValue.Add("copy", 169); // copyright sign, U+00A9 ISOnum 
+            _entityName.Add(169, "copy");
+            _entityValue.Add("ordf", 170); // feminine ordinal indicator, U+00AA ISOnum 
+            _entityName.Add(170, "ordf");
+            _entityValue.Add("laquo", 171);
+                // left-pointing double angle quotation mark = left pointing guillemet, U+00AB ISOnum 
+            _entityName.Add(171, "laquo");
+            _entityValue.Add("not", 172); // not sign, U+00AC ISOnum 
+            _entityName.Add(172, "not");
+            _entityValue.Add("shy", 173); // soft hyphen = discretionary hyphen, U+00AD ISOnum 
+            _entityName.Add(173, "shy");
+            _entityValue.Add("reg", 174); // registered sign = registered trade mark sign, U+00AE ISOnum 
+            _entityName.Add(174, "reg");
+            _entityValue.Add("macr", 175); // macron = spacing macron = overline = APL overbar, U+00AF ISOdia 
+            _entityName.Add(175, "macr");
+            _entityValue.Add("deg", 176); // degree sign, U+00B0 ISOnum 
+            _entityName.Add(176, "deg");
+            _entityValue.Add("plusmn", 177); // plus-minus sign = plus-or-minus sign, U+00B1 ISOnum 
+            _entityName.Add(177, "plusmn");
+            _entityValue.Add("sup2", 178); // superscript two = superscript digit two = squared, U+00B2 ISOnum 
+            _entityName.Add(178, "sup2");
+            _entityValue.Add("sup3", 179); // superscript three = superscript digit three = cubed, U+00B3 ISOnum 
+            _entityName.Add(179, "sup3");
+            _entityValue.Add("acute", 180); // acute accent = spacing acute, U+00B4 ISOdia 
+            _entityName.Add(180, "acute");
+            _entityValue.Add("micro", 181); // micro sign, U+00B5 ISOnum 
+            _entityName.Add(181, "micro");
+            _entityValue.Add("para", 182); // pilcrow sign = paragraph sign, U+00B6 ISOnum 
+            _entityName.Add(182, "para");
+            _entityValue.Add("middot", 183); // middle dot = Georgian comma = Greek middle dot, U+00B7 ISOnum 
+            _entityName.Add(183, "middot");
+            _entityValue.Add("cedil", 184); // cedilla = spacing cedilla, U+00B8 ISOdia 
+            _entityName.Add(184, "cedil");
+            _entityValue.Add("sup1", 185); // superscript one = superscript digit one, U+00B9 ISOnum 
+            _entityName.Add(185, "sup1");
+            _entityValue.Add("ordm", 186); // masculine ordinal indicator, U+00BA ISOnum 
+            _entityName.Add(186, "ordm");
+            _entityValue.Add("raquo", 187);
+                // right-pointing double angle quotation mark = right pointing guillemet, U+00BB ISOnum 
+            _entityName.Add(187, "raquo");
+            _entityValue.Add("frac14", 188); // vulgar fraction one quarter = fraction one quarter, U+00BC ISOnum 
+            _entityName.Add(188, "frac14");
+            _entityValue.Add("frac12", 189); // vulgar fraction one half = fraction one half, U+00BD ISOnum 
+            _entityName.Add(189, "frac12");
+            _entityValue.Add("frac34", 190); // vulgar fraction three quarters = fraction three quarters, U+00BE ISOnum 
+            _entityName.Add(190, "frac34");
+            _entityValue.Add("iquest", 191); // inverted question mark = turned question mark, U+00BF ISOnum 
+            _entityName.Add(191, "iquest");
+            _entityValue.Add("Agrave", 192);
+                // latin capital letter A with grave = latin capital letter A grave, U+00C0 ISOlat1 
+            _entityName.Add(192, "Agrave");
+            _entityValue.Add("Aacute", 193); // latin capital letter A with acute, U+00C1 ISOlat1 
+            _entityName.Add(193, "Aacute");
+            _entityValue.Add("Acirc", 194); // latin capital letter A with circumflex, U+00C2 ISOlat1 
+            _entityName.Add(194, "Acirc");
+            _entityValue.Add("Atilde", 195); // latin capital letter A with tilde, U+00C3 ISOlat1 
+            _entityName.Add(195, "Atilde");
+            _entityValue.Add("Auml", 196); // latin capital letter A with diaeresis, U+00C4 ISOlat1 
+            _entityName.Add(196, "Auml");
+            _entityValue.Add("Aring", 197);
+                // latin capital letter A with ring above = latin capital letter A ring, U+00C5 ISOlat1 
+            _entityName.Add(197, "Aring");
+            _entityValue.Add("AElig", 198); // latin capital letter AE = latin capital ligature AE, U+00C6 ISOlat1 
+            _entityName.Add(198, "AElig");
+            _entityValue.Add("Ccedil", 199); // latin capital letter C with cedilla, U+00C7 ISOlat1 
+            _entityName.Add(199, "Ccedil");
+            _entityValue.Add("Egrave", 200); // latin capital letter E with grave, U+00C8 ISOlat1 
+            _entityName.Add(200, "Egrave");
+            _entityValue.Add("Eacute", 201); // latin capital letter E with acute, U+00C9 ISOlat1 
+            _entityName.Add(201, "Eacute");
+            _entityValue.Add("Ecirc", 202); // latin capital letter E with circumflex, U+00CA ISOlat1 
+            _entityName.Add(202, "Ecirc");
+            _entityValue.Add("Euml", 203); // latin capital letter E with diaeresis, U+00CB ISOlat1 
+            _entityName.Add(203, "Euml");
+            _entityValue.Add("Igrave", 204); // latin capital letter I with grave, U+00CC ISOlat1 
+            _entityName.Add(204, "Igrave");
+            _entityValue.Add("Iacute", 205); // latin capital letter I with acute, U+00CD ISOlat1 
+            _entityName.Add(205, "Iacute");
+            _entityValue.Add("Icirc", 206); // latin capital letter I with circumflex, U+00CE ISOlat1 
+            _entityName.Add(206, "Icirc");
+            _entityValue.Add("Iuml", 207); // latin capital letter I with diaeresis, U+00CF ISOlat1 
+            _entityName.Add(207, "Iuml");
+            _entityValue.Add("ETH", 208); // latin capital letter ETH, U+00D0 ISOlat1 
+            _entityName.Add(208, "ETH");
+            _entityValue.Add("Ntilde", 209); // latin capital letter N with tilde, U+00D1 ISOlat1 
+            _entityName.Add(209, "Ntilde");
+            _entityValue.Add("Ograve", 210); // latin capital letter O with grave, U+00D2 ISOlat1 
+            _entityName.Add(210, "Ograve");
+            _entityValue.Add("Oacute", 211); // latin capital letter O with acute, U+00D3 ISOlat1 
+            _entityName.Add(211, "Oacute");
+            _entityValue.Add("Ocirc", 212); // latin capital letter O with circumflex, U+00D4 ISOlat1 
+            _entityName.Add(212, "Ocirc");
+            _entityValue.Add("Otilde", 213); // latin capital letter O with tilde, U+00D5 ISOlat1 
+            _entityName.Add(213, "Otilde");
+            _entityValue.Add("Ouml", 214); // latin capital letter O with diaeresis, U+00D6 ISOlat1 
+            _entityName.Add(214, "Ouml");
+            _entityValue.Add("times", 215); // multiplication sign, U+00D7 ISOnum 
+            _entityName.Add(215, "times");
+            _entityValue.Add("Oslash", 216);
+                // latin capital letter O with stroke = latin capital letter O slash, U+00D8 ISOlat1 
+            _entityName.Add(216, "Oslash");
+            _entityValue.Add("Ugrave", 217); // latin capital letter U with grave, U+00D9 ISOlat1 
+            _entityName.Add(217, "Ugrave");
+            _entityValue.Add("Uacute", 218); // latin capital letter U with acute, U+00DA ISOlat1 
+            _entityName.Add(218, "Uacute");
+            _entityValue.Add("Ucirc", 219); // latin capital letter U with circumflex, U+00DB ISOlat1 
+            _entityName.Add(219, "Ucirc");
+            _entityValue.Add("Uuml", 220); // latin capital letter U with diaeresis, U+00DC ISOlat1 
+            _entityName.Add(220, "Uuml");
+            _entityValue.Add("Yacute", 221); // latin capital letter Y with acute, U+00DD ISOlat1 
+            _entityName.Add(221, "Yacute");
+            _entityValue.Add("THORN", 222); // latin capital letter THORN, U+00DE ISOlat1 
+            _entityName.Add(222, "THORN");
+            _entityValue.Add("szlig", 223); // latin small letter sharp s = ess-zed, U+00DF ISOlat1 
+            _entityName.Add(223, "szlig");
+            _entityValue.Add("agrave", 224);
+                // latin small letter a with grave = latin small letter a grave, U+00E0 ISOlat1 
+            _entityName.Add(224, "agrave");
+            _entityValue.Add("aacute", 225); // latin small letter a with acute, U+00E1 ISOlat1 
+            _entityName.Add(225, "aacute");
+            _entityValue.Add("acirc", 226); // latin small letter a with circumflex, U+00E2 ISOlat1 
+            _entityName.Add(226, "acirc");
+            _entityValue.Add("atilde", 227); // latin small letter a with tilde, U+00E3 ISOlat1 
+            _entityName.Add(227, "atilde");
+            _entityValue.Add("auml", 228); // latin small letter a with diaeresis, U+00E4 ISOlat1 
+            _entityName.Add(228, "auml");
+            _entityValue.Add("aring", 229);
+                // latin small letter a with ring above = latin small letter a ring, U+00E5 ISOlat1 
+            _entityName.Add(229, "aring");
+            _entityValue.Add("aelig", 230); // latin small letter ae = latin small ligature ae, U+00E6 ISOlat1 
+            _entityName.Add(230, "aelig");
+            _entityValue.Add("ccedil", 231); // latin small letter c with cedilla, U+00E7 ISOlat1 
+            _entityName.Add(231, "ccedil");
+            _entityValue.Add("egrave", 232); // latin small letter e with grave, U+00E8 ISOlat1 
+            _entityName.Add(232, "egrave");
+            _entityValue.Add("eacute", 233); // latin small letter e with acute, U+00E9 ISOlat1 
+            _entityName.Add(233, "eacute");
+            _entityValue.Add("ecirc", 234); // latin small letter e with circumflex, U+00EA ISOlat1 
+            _entityName.Add(234, "ecirc");
+            _entityValue.Add("euml", 235); // latin small letter e with diaeresis, U+00EB ISOlat1 
+            _entityName.Add(235, "euml");
+            _entityValue.Add("igrave", 236); // latin small letter i with grave, U+00EC ISOlat1 
+            _entityName.Add(236, "igrave");
+            _entityValue.Add("iacute", 237); // latin small letter i with acute, U+00ED ISOlat1 
+            _entityName.Add(237, "iacute");
+            _entityValue.Add("icirc", 238); // latin small letter i with circumflex, U+00EE ISOlat1 
+            _entityName.Add(238, "icirc");
+            _entityValue.Add("iuml", 239); // latin small letter i with diaeresis, U+00EF ISOlat1 
+            _entityName.Add(239, "iuml");
+            _entityValue.Add("eth", 240); // latin small letter eth, U+00F0 ISOlat1 
+            _entityName.Add(240, "eth");
+            _entityValue.Add("ntilde", 241); // latin small letter n with tilde, U+00F1 ISOlat1 
+            _entityName.Add(241, "ntilde");
+            _entityValue.Add("ograve", 242); // latin small letter o with grave, U+00F2 ISOlat1 
+            _entityName.Add(242, "ograve");
+            _entityValue.Add("oacute", 243); // latin small letter o with acute, U+00F3 ISOlat1 
+            _entityName.Add(243, "oacute");
+            _entityValue.Add("ocirc", 244); // latin small letter o with circumflex, U+00F4 ISOlat1 
+            _entityName.Add(244, "ocirc");
+            _entityValue.Add("otilde", 245); // latin small letter o with tilde, U+00F5 ISOlat1 
+            _entityName.Add(245, "otilde");
+            _entityValue.Add("ouml", 246); // latin small letter o with diaeresis, U+00F6 ISOlat1 
+            _entityName.Add(246, "ouml");
+            _entityValue.Add("divide", 247); // division sign, U+00F7 ISOnum 
+            _entityName.Add(247, "divide");
+            _entityValue.Add("oslash", 248);
+                // latin small letter o with stroke, = latin small letter o slash, U+00F8 ISOlat1 
+            _entityName.Add(248, "oslash");
+            _entityValue.Add("ugrave", 249); // latin small letter u with grave, U+00F9 ISOlat1 
+            _entityName.Add(249, "ugrave");
+            _entityValue.Add("uacute", 250); // latin small letter u with acute, U+00FA ISOlat1 
+            _entityName.Add(250, "uacute");
+            _entityValue.Add("ucirc", 251); // latin small letter u with circumflex, U+00FB ISOlat1 
+            _entityName.Add(251, "ucirc");
+            _entityValue.Add("uuml", 252); // latin small letter u with diaeresis, U+00FC ISOlat1 
+            _entityName.Add(252, "uuml");
+            _entityValue.Add("yacute", 253); // latin small letter y with acute, U+00FD ISOlat1 
+            _entityName.Add(253, "yacute");
+            _entityValue.Add("thorn", 254); // latin small letter thorn, U+00FE ISOlat1 
+            _entityName.Add(254, "thorn");
+            _entityValue.Add("yuml", 255); // latin small letter y with diaeresis, U+00FF ISOlat1 
+            _entityName.Add(255, "yuml");
+            _entityValue.Add("fnof", 402); // latin small f with hook = function = florin, U+0192 ISOtech 
+            _entityName.Add(402, "fnof");
+            _entityValue.Add("Alpha", 913); // greek capital letter alpha, U+0391 
+            _entityName.Add(913, "Alpha");
+            _entityValue.Add("Beta", 914); // greek capital letter beta, U+0392 
+            _entityName.Add(914, "Beta");
+            _entityValue.Add("Gamma", 915); // greek capital letter gamma, U+0393 ISOgrk3 
+            _entityName.Add(915, "Gamma");
+            _entityValue.Add("Delta", 916); // greek capital letter delta, U+0394 ISOgrk3 
+            _entityName.Add(916, "Delta");
+            _entityValue.Add("Epsilon", 917); // greek capital letter epsilon, U+0395 
+            _entityName.Add(917, "Epsilon");
+            _entityValue.Add("Zeta", 918); // greek capital letter zeta, U+0396 
+            _entityName.Add(918, "Zeta");
+            _entityValue.Add("Eta", 919); // greek capital letter eta, U+0397 
+            _entityName.Add(919, "Eta");
+            _entityValue.Add("Theta", 920); // greek capital letter theta, U+0398 ISOgrk3 
+            _entityName.Add(920, "Theta");
+            _entityValue.Add("Iota", 921); // greek capital letter iota, U+0399 
+            _entityName.Add(921, "Iota");
+            _entityValue.Add("Kappa", 922); // greek capital letter kappa, U+039A 
+            _entityName.Add(922, "Kappa");
+            _entityValue.Add("Lambda", 923); // greek capital letter lambda, U+039B ISOgrk3 
+            _entityName.Add(923, "Lambda");
+            _entityValue.Add("Mu", 924); // greek capital letter mu, U+039C 
+            _entityName.Add(924, "Mu");
+            _entityValue.Add("Nu", 925); // greek capital letter nu, U+039D 
+            _entityName.Add(925, "Nu");
+            _entityValue.Add("Xi", 926); // greek capital letter xi, U+039E ISOgrk3 
+            _entityName.Add(926, "Xi");
+            _entityValue.Add("Omicron", 927); // greek capital letter omicron, U+039F 
+            _entityName.Add(927, "Omicron");
+            _entityValue.Add("Pi", 928); // greek capital letter pi, U+03A0 ISOgrk3 
+            _entityName.Add(928, "Pi");
+            _entityValue.Add("Rho", 929); // greek capital letter rho, U+03A1 
+            _entityName.Add(929, "Rho");
+            _entityValue.Add("Sigma", 931); // greek capital letter sigma, U+03A3 ISOgrk3 
+            _entityName.Add(931, "Sigma");
+            _entityValue.Add("Tau", 932); // greek capital letter tau, U+03A4 
+            _entityName.Add(932, "Tau");
+            _entityValue.Add("Upsilon", 933); // greek capital letter upsilon, U+03A5 ISOgrk3 
+            _entityName.Add(933, "Upsilon");
+            _entityValue.Add("Phi", 934); // greek capital letter phi, U+03A6 ISOgrk3 
+            _entityName.Add(934, "Phi");
+            _entityValue.Add("Chi", 935); // greek capital letter chi, U+03A7 
+            _entityName.Add(935, "Chi");
+            _entityValue.Add("Psi", 936); // greek capital letter psi, U+03A8 ISOgrk3 
+            _entityName.Add(936, "Psi");
+            _entityValue.Add("Omega", 937); // greek capital letter omega, U+03A9 ISOgrk3 
+            _entityName.Add(937, "Omega");
+            _entityValue.Add("alpha", 945); // greek small letter alpha, U+03B1 ISOgrk3 
+            _entityName.Add(945, "alpha");
+            _entityValue.Add("beta", 946); // greek small letter beta, U+03B2 ISOgrk3 
+            _entityName.Add(946, "beta");
+            _entityValue.Add("gamma", 947); // greek small letter gamma, U+03B3 ISOgrk3 
+            _entityName.Add(947, "gamma");
+            _entityValue.Add("delta", 948); // greek small letter delta, U+03B4 ISOgrk3 
+            _entityName.Add(948, "delta");
+            _entityValue.Add("epsilon", 949); // greek small letter epsilon, U+03B5 ISOgrk3 
+            _entityName.Add(949, "epsilon");
+            _entityValue.Add("zeta", 950); // greek small letter zeta, U+03B6 ISOgrk3 
+            _entityName.Add(950, "zeta");
+            _entityValue.Add("eta", 951); // greek small letter eta, U+03B7 ISOgrk3 
+            _entityName.Add(951, "eta");
+            _entityValue.Add("theta", 952); // greek small letter theta, U+03B8 ISOgrk3 
+            _entityName.Add(952, "theta");
+            _entityValue.Add("iota", 953); // greek small letter iota, U+03B9 ISOgrk3 
+            _entityName.Add(953, "iota");
+            _entityValue.Add("kappa", 954); // greek small letter kappa, U+03BA ISOgrk3 
+            _entityName.Add(954, "kappa");
+            _entityValue.Add("lambda", 955); // greek small letter lambda, U+03BB ISOgrk3 
+            _entityName.Add(955, "lambda");
+            _entityValue.Add("mu", 956); // greek small letter mu, U+03BC ISOgrk3 
+            _entityName.Add(956, "mu");
+            _entityValue.Add("nu", 957); // greek small letter nu, U+03BD ISOgrk3 
+            _entityName.Add(957, "nu");
+            _entityValue.Add("xi", 958); // greek small letter xi, U+03BE ISOgrk3 
+            _entityName.Add(958, "xi");
+            _entityValue.Add("omicron", 959); // greek small letter omicron, U+03BF NEW 
+            _entityName.Add(959, "omicron");
+            _entityValue.Add("pi", 960); // greek small letter pi, U+03C0 ISOgrk3 
+            _entityName.Add(960, "pi");
+            _entityValue.Add("rho", 961); // greek small letter rho, U+03C1 ISOgrk3 
+            _entityName.Add(961, "rho");
+            _entityValue.Add("sigmaf", 962); // greek small letter final sigma, U+03C2 ISOgrk3 
+            _entityName.Add(962, "sigmaf");
+            _entityValue.Add("sigma", 963); // greek small letter sigma, U+03C3 ISOgrk3 
+            _entityName.Add(963, "sigma");
+            _entityValue.Add("tau", 964); // greek small letter tau, U+03C4 ISOgrk3 
+            _entityName.Add(964, "tau");
+            _entityValue.Add("upsilon", 965); // greek small letter upsilon, U+03C5 ISOgrk3 
+            _entityName.Add(965, "upsilon");
+            _entityValue.Add("phi", 966); // greek small letter phi, U+03C6 ISOgrk3 
+            _entityName.Add(966, "phi");
+            _entityValue.Add("chi", 967); // greek small letter chi, U+03C7 ISOgrk3 
+            _entityName.Add(967, "chi");
+            _entityValue.Add("psi", 968); // greek small letter psi, U+03C8 ISOgrk3 
+            _entityName.Add(968, "psi");
+            _entityValue.Add("omega", 969); // greek small letter omega, U+03C9 ISOgrk3 
+            _entityName.Add(969, "omega");
+            _entityValue.Add("thetasym", 977); // greek small letter theta symbol, U+03D1 NEW 
+            _entityName.Add(977, "thetasym");
+            _entityValue.Add("upsih", 978); // greek upsilon with hook symbol, U+03D2 NEW 
+            _entityName.Add(978, "upsih");
+            _entityValue.Add("piv", 982); // greek pi symbol, U+03D6 ISOgrk3 
+            _entityName.Add(982, "piv");
+            _entityValue.Add("bull", 8226); // bullet = black small circle, U+2022 ISOpub 
+            _entityName.Add(8226, "bull");
+            _entityValue.Add("hellip", 8230); // horizontal ellipsis = three dot leader, U+2026 ISOpub 
+            _entityName.Add(8230, "hellip");
+            _entityValue.Add("prime", 8242); // prime = minutes = feet, U+2032 ISOtech 
+            _entityName.Add(8242, "prime");
+            _entityValue.Add("Prime", 8243); // double prime = seconds = inches, U+2033 ISOtech 
+            _entityName.Add(8243, "Prime");
+            _entityValue.Add("oline", 8254); // overline = spacing overscore, U+203E NEW 
+            _entityName.Add(8254, "oline");
+            _entityValue.Add("frasl", 8260); // fraction slash, U+2044 NEW 
+            _entityName.Add(8260, "frasl");
+            _entityValue.Add("weierp", 8472); // script capital P = power set = Weierstrass p, U+2118 ISOamso 
+            _entityName.Add(8472, "weierp");
+            _entityValue.Add("image", 8465); // blackletter capital I = imaginary part, U+2111 ISOamso 
+            _entityName.Add(8465, "image");
+            _entityValue.Add("real", 8476); // blackletter capital R = real part symbol, U+211C ISOamso 
+            _entityName.Add(8476, "real");
+            _entityValue.Add("trade", 8482); // trade mark sign, U+2122 ISOnum 
+            _entityName.Add(8482, "trade");
+            _entityValue.Add("alefsym", 8501); // alef symbol = first transfinite cardinal, U+2135 NEW 
+            _entityName.Add(8501, "alefsym");
+            _entityValue.Add("larr", 8592); // leftwards arrow, U+2190 ISOnum 
+            _entityName.Add(8592, "larr");
+            _entityValue.Add("uarr", 8593); // upwards arrow, U+2191 ISOnum
+            _entityName.Add(8593, "uarr");
+            _entityValue.Add("rarr", 8594); // rightwards arrow, U+2192 ISOnum 
+            _entityName.Add(8594, "rarr");
+            _entityValue.Add("darr", 8595); // downwards arrow, U+2193 ISOnum 
+            _entityName.Add(8595, "darr");
+            _entityValue.Add("harr", 8596); // left right arrow, U+2194 ISOamsa 
+            _entityName.Add(8596, "harr");
+            _entityValue.Add("crarr", 8629); // downwards arrow with corner leftwards = carriage return, U+21B5 NEW 
+            _entityName.Add(8629, "crarr");
+            _entityValue.Add("lArr", 8656); // leftwards double arrow, U+21D0 ISOtech 
+            _entityName.Add(8656, "lArr");
+            _entityValue.Add("uArr", 8657); // upwards double arrow, U+21D1 ISOamsa 
+            _entityName.Add(8657, "uArr");
+            _entityValue.Add("rArr", 8658); // rightwards double arrow, U+21D2 ISOtech 
+            _entityName.Add(8658, "rArr");
+            _entityValue.Add("dArr", 8659); // downwards double arrow, U+21D3 ISOamsa 
+            _entityName.Add(8659, "dArr");
+            _entityValue.Add("hArr", 8660); // left right double arrow, U+21D4 ISOamsa 
+            _entityName.Add(8660, "hArr");
+            _entityValue.Add("forall", 8704); // for all, U+2200 ISOtech 
+            _entityName.Add(8704, "forall");
+            _entityValue.Add("part", 8706); // partial differential, U+2202 ISOtech 
+            _entityName.Add(8706, "part");
+            _entityValue.Add("exist", 8707); // there exists, U+2203 ISOtech 
+            _entityName.Add(8707, "exist");
+            _entityValue.Add("empty", 8709); // empty set = null set = diameter, U+2205 ISOamso 
+            _entityName.Add(8709, "empty");
+            _entityValue.Add("nabla", 8711); // nabla = backward difference, U+2207 ISOtech 
+            _entityName.Add(8711, "nabla");
+            _entityValue.Add("isin", 8712); // element of, U+2208 ISOtech 
+            _entityName.Add(8712, "isin");
+            _entityValue.Add("notin", 8713); // not an element of, U+2209 ISOtech 
+            _entityName.Add(8713, "notin");
+            _entityValue.Add("ni", 8715); // contains as member, U+220B ISOtech 
+            _entityName.Add(8715, "ni");
+            _entityValue.Add("prod", 8719); // n-ary product = product sign, U+220F ISOamsb 
+            _entityName.Add(8719, "prod");
+            _entityValue.Add("sum", 8721); // n-ary sumation, U+2211 ISOamsb 
+            _entityName.Add(8721, "sum");
+            _entityValue.Add("minus", 8722); // minus sign, U+2212 ISOtech 
+            _entityName.Add(8722, "minus");
+            _entityValue.Add("lowast", 8727); // asterisk operator, U+2217 ISOtech 
+            _entityName.Add(8727, "lowast");
+            _entityValue.Add("radic", 8730); // square root = radical sign, U+221A ISOtech 
+            _entityName.Add(8730, "radic");
+            _entityValue.Add("prop", 8733); // proportional to, U+221D ISOtech 
+            _entityName.Add(8733, "prop");
+            _entityValue.Add("infin", 8734); // infinity, U+221E ISOtech 
+            _entityName.Add(8734, "infin");
+            _entityValue.Add("ang", 8736); // angle, U+2220 ISOamso 
+            _entityName.Add(8736, "ang");
+            _entityValue.Add("and", 8743); // logical and = wedge, U+2227 ISOtech 
+            _entityName.Add(8743, "and");
+            _entityValue.Add("or", 8744); // logical or = vee, U+2228 ISOtech 
+            _entityName.Add(8744, "or");
+            _entityValue.Add("cap", 8745); // intersection = cap, U+2229 ISOtech 
+            _entityName.Add(8745, "cap");
+            _entityValue.Add("cup", 8746); // union = cup, U+222A ISOtech 
+            _entityName.Add(8746, "cup");
+            _entityValue.Add("int", 8747); // integral, U+222B ISOtech 
+            _entityName.Add(8747, "int");
+            _entityValue.Add("there4", 8756); // therefore, U+2234 ISOtech 
+            _entityName.Add(8756, "there4");
+            _entityValue.Add("sim", 8764); // tilde operator = varies with = similar to, U+223C ISOtech 
+            _entityName.Add(8764, "sim");
+            _entityValue.Add("cong", 8773); // approximately equal to, U+2245 ISOtech 
+            _entityName.Add(8773, "cong");
+            _entityValue.Add("asymp", 8776); // almost equal to = asymptotic to, U+2248 ISOamsr 
+            _entityName.Add(8776, "asymp");
+            _entityValue.Add("ne", 8800); // not equal to, U+2260 ISOtech 
+            _entityName.Add(8800, "ne");
+            _entityValue.Add("equiv", 8801); // identical to, U+2261 ISOtech 
+            _entityName.Add(8801, "equiv");
+            _entityValue.Add("le", 8804); // less-than or equal to, U+2264 ISOtech 
+            _entityName.Add(8804, "le");
+            _entityValue.Add("ge", 8805); // greater-than or equal to, U+2265 ISOtech 
+            _entityName.Add(8805, "ge");
+            _entityValue.Add("sub", 8834); // subset of, U+2282 ISOtech 
+            _entityName.Add(8834, "sub");
+            _entityValue.Add("sup", 8835); // superset of, U+2283 ISOtech 
+            _entityName.Add(8835, "sup");
+            _entityValue.Add("nsub", 8836); // not a subset of, U+2284 ISOamsn 
+            _entityName.Add(8836, "nsub");
+            _entityValue.Add("sube", 8838); // subset of or equal to, U+2286 ISOtech 
+            _entityName.Add(8838, "sube");
+            _entityValue.Add("supe", 8839); // superset of or equal to, U+2287 ISOtech 
+            _entityName.Add(8839, "supe");
+            _entityValue.Add("oplus", 8853); // circled plus = direct sum, U+2295 ISOamsb 
+            _entityName.Add(8853, "oplus");
+            _entityValue.Add("otimes", 8855); // circled times = vector product, U+2297 ISOamsb 
+            _entityName.Add(8855, "otimes");
+            _entityValue.Add("perp", 8869); // up tack = orthogonal to = perpendicular, U+22A5 ISOtech 
+            _entityName.Add(8869, "perp");
+            _entityValue.Add("sdot", 8901); // dot operator, U+22C5 ISOamsb 
+            _entityName.Add(8901, "sdot");
+            _entityValue.Add("lceil", 8968); // left ceiling = apl upstile, U+2308 ISOamsc 
+            _entityName.Add(8968, "lceil");
+            _entityValue.Add("rceil", 8969); // right ceiling, U+2309 ISOamsc 
+            _entityName.Add(8969, "rceil");
+            _entityValue.Add("lfloor", 8970); // left floor = apl downstile, U+230A ISOamsc 
+            _entityName.Add(8970, "lfloor");
+            _entityValue.Add("rfloor", 8971); // right floor, U+230B ISOamsc 
+            _entityName.Add(8971, "rfloor");
+            _entityValue.Add("lang", 9001); // left-pointing angle bracket = bra, U+2329 ISOtech 
+            _entityName.Add(9001, "lang");
+            _entityValue.Add("rang", 9002); // right-pointing angle bracket = ket, U+232A ISOtech 
+            _entityName.Add(9002, "rang");
+            _entityValue.Add("loz", 9674); // lozenge, U+25CA ISOpub 
+            _entityName.Add(9674, "loz");
+            _entityValue.Add("spades", 9824); // black spade suit, U+2660 ISOpub 
+            _entityName.Add(9824, "spades");
+            _entityValue.Add("clubs", 9827); // black club suit = shamrock, U+2663 ISOpub 
+            _entityName.Add(9827, "clubs");
+            _entityValue.Add("hearts", 9829); // black heart suit = valentine, U+2665 ISOpub 
+            _entityName.Add(9829, "hearts");
+            _entityValue.Add("diams", 9830); // black diamond suit, U+2666 ISOpub 
+            _entityName.Add(9830, "diams");
+            _entityValue.Add("quot", 34); // quotation mark = APL quote, U+0022 ISOnum 
+            _entityName.Add(34, "quot");
+            _entityValue.Add("amp", 38); // ampersand, U+0026 ISOnum 
+            _entityName.Add(38, "amp");
+            _entityValue.Add("lt", 60); // less-than sign, U+003C ISOnum 
+            _entityName.Add(60, "lt");
+            _entityValue.Add("gt", 62); // greater-than sign, U+003E ISOnum 
+            _entityName.Add(62, "gt");
+            _entityValue.Add("OElig", 338); // latin capital ligature OE, U+0152 ISOlat2 
+            _entityName.Add(338, "OElig");
+            _entityValue.Add("oelig", 339); // latin small ligature oe, U+0153 ISOlat2 
+            _entityName.Add(339, "oelig");
+            _entityValue.Add("Scaron", 352); // latin capital letter S with caron, U+0160 ISOlat2 
+            _entityName.Add(352, "Scaron");
+            _entityValue.Add("scaron", 353); // latin small letter s with caron, U+0161 ISOlat2 
+            _entityName.Add(353, "scaron");
+            _entityValue.Add("Yuml", 376); // latin capital letter Y with diaeresis, U+0178 ISOlat2 
+            _entityName.Add(376, "Yuml");
+            _entityValue.Add("circ", 710); // modifier letter circumflex accent, U+02C6 ISOpub 
+            _entityName.Add(710, "circ");
+            _entityValue.Add("tilde", 732); // small tilde, U+02DC ISOdia 
+            _entityName.Add(732, "tilde");
+            _entityValue.Add("ensp", 8194); // en space, U+2002 ISOpub 
+            _entityName.Add(8194, "ensp");
+            _entityValue.Add("emsp", 8195); // em space, U+2003 ISOpub 
+            _entityName.Add(8195, "emsp");
+            _entityValue.Add("thinsp", 8201); // thin space, U+2009 ISOpub 
+            _entityName.Add(8201, "thinsp");
+            _entityValue.Add("zwnj", 8204); // zero width non-joiner, U+200C NEW RFC 2070 
+            _entityName.Add(8204, "zwnj");
+            _entityValue.Add("zwj", 8205); // zero width joiner, U+200D NEW RFC 2070 
+            _entityName.Add(8205, "zwj");
+            _entityValue.Add("lrm", 8206); // left-to-right mark, U+200E NEW RFC 2070 
+            _entityName.Add(8206, "lrm");
+            _entityValue.Add("rlm", 8207); // right-to-left mark, U+200F NEW RFC 2070 
+            _entityName.Add(8207, "rlm");
+            _entityValue.Add("ndash", 8211); // en dash, U+2013 ISOpub 
+            _entityName.Add(8211, "ndash");
+            _entityValue.Add("mdash", 8212); // em dash, U+2014 ISOpub 
+            _entityName.Add(8212, "mdash");
+            _entityValue.Add("lsquo", 8216); // left single quotation mark, U+2018 ISOnum 
+            _entityName.Add(8216, "lsquo");
+            _entityValue.Add("rsquo", 8217); // right single quotation mark, U+2019 ISOnum 
+            _entityName.Add(8217, "rsquo");
+            _entityValue.Add("sbquo", 8218); // single low-9 quotation mark, U+201A NEW 
+            _entityName.Add(8218, "sbquo");
+            _entityValue.Add("ldquo", 8220); // left double quotation mark, U+201C ISOnum 
+            _entityName.Add(8220, "ldquo");
+            _entityValue.Add("rdquo", 8221); // right double quotation mark, U+201D ISOnum 
+            _entityName.Add(8221, "rdquo");
+            _entityValue.Add("bdquo", 8222); // double low-9 quotation mark, U+201E NEW 
+            _entityName.Add(8222, "bdquo");
+            _entityValue.Add("dagger", 8224); // dagger, U+2020 ISOpub 
+            _entityName.Add(8224, "dagger");
+            _entityValue.Add("Dagger", 8225); // double dagger, U+2021 ISOpub 
+            _entityName.Add(8225, "Dagger");
+            _entityValue.Add("permil", 8240); // per mille sign, U+2030 ISOtech 
+            _entityName.Add(8240, "permil");
+            _entityValue.Add("lsaquo", 8249); // single left-pointing angle quotation mark, U+2039 ISO proposed 
+            _entityName.Add(8249, "lsaquo");
+            _entityValue.Add("rsaquo", 8250); // single right-pointing angle quotation mark, U+203A ISO proposed 
+            _entityName.Add(8250, "rsaquo");
+            _entityValue.Add("euro", 8364); // euro sign, U+20AC NEW 
+            _entityName.Add(8364, "euro");
+
+            _maxEntitySize = 8 + 1; // we add the # char
+
+            #endregion
+        }
+
+        private HtmlEntity()
+        {
+        }
+
+        #endregion
+
+        #region Public Methods
+
+        /// <summary>
+        /// Replace known entities by characters.
+        /// </summary>
+        /// <param name="text">The source text.</param>
+        /// <returns>The result text.</returns>
+        public static string DeEntitize(string text)
+        {
+            if (text == null)
+                return null;
+
+            if (text.Length == 0)
+                return text;
+
+            StringBuilder sb = new StringBuilder(text.Length);
+            ParseState state = ParseState.Text;
+            StringBuilder entity = new StringBuilder(10);
+
+            for (int i = 0; i < text.Length; i++)
+            {
+                switch (state)
+                {
+                    case ParseState.Text:
+                        switch (text[i])
+                        {
+                            case '&':
+                                state = ParseState.EntityStart;
+                                break;
+
+                            default:
+                                sb.Append(text[i]);
+                                break;
+                        }
+                        break;
+
+                    case ParseState.EntityStart:
+                        switch (text[i])
+                        {
+                            case ';':
+                                if (entity.Length == 0)
+                                {
+                                    sb.Append("&;");
+                                }
+                                else
+                                {
+                                    if (entity[0] == '#')
+                                    {
+                                        string e = entity.ToString();
+                                        try
+                                        {
+                                            int code = Convert.ToInt32(e.Substring(1, e.Length - 1));
+                                            sb.Append(Convert.ToChar(code));
+                                        }
+                                        catch
+                                        {
+                                            sb.Append("&#" + e + ";");
+                                        }
+                                    }
+                                    else
+                                    {
+                                        // named entity?
+                                        int code;
+                                        object o = _entityValue[entity.ToString()];
+                                        if (o == null)
+                                        {
+                                            // nope
+                                            sb.Append("&" + entity + ";");
+                                        }
+                                        else
+                                        {
+                                            // we found one
+                                            code = (int) o;
+                                            sb.Append(Convert.ToChar(code));
+                                        }
+                                    }
+                                    entity.Remove(0, entity.Length);
+                                }
+                                state = ParseState.Text;
+                                break;
+
+                            case '&':
+                                // new entity start without end, it was not an entity...
+                                sb.Append("&" + entity);
+                                entity.Remove(0, entity.Length);
+                                break;
+
+                            default:
+                                entity.Append(text[i]);
+                                if (entity.Length > _maxEntitySize)
+                                {
+                                    // unknown stuff, just don't touch it
+                                    state = ParseState.Text;
+                                    sb.Append("&" + entity);
+                                    entity.Remove(0, entity.Length);
+                                }
+                                break;
+                        }
+                        break;
+                }
+            }
+
+            // finish the work
+            if (state == ParseState.EntityStart)
+            {
+                sb.Append("&" + entity);
+            }
+            return sb.ToString();
+        }
+
+        /// <summary>
+        /// Clone and entitize an HtmlNode. This will affect attribute values and nodes' text. It will also entitize all child nodes.
+        /// </summary>
+        /// <param name="node">The node to entitize.</param>
+        /// <returns>An entitized cloned node.</returns>
+        public static HtmlNode Entitize(HtmlNode node)
+        {
+            if (node == null)
+            {
+                throw new ArgumentNullException("node");
+            }
+            HtmlNode result = node.CloneNode(true);
+            if (result.HasAttributes)
+                Entitize(result.Attributes);
+
+            if (result.HasChildNodes)
+            {
+                Entitize(result.ChildNodes);
+            }
+            else
+            {
+                if (result.NodeType == HtmlNodeType.Text)
+                {
+                    ((HtmlTextNode) result).Text = Entitize(((HtmlTextNode) result).Text, true, true);
+                }
+            }
+            return result;
+        }
+
+
+        /// <summary>
+        /// Replace characters above 127 by entities.
+        /// </summary>
+        /// <param name="text">The source text.</param>
+        /// <returns>The result text.</returns>
+        public static string Entitize(string text)
+        {
+            return Entitize(text, true);
+        }
+
+        /// <summary>
+        /// Replace characters above 127 by entities.
+        /// </summary>
+        /// <param name="text">The source text.</param>
+        /// <param name="useNames">If set to false, the function will not use known entities name. Default is true.</param>
+        /// <returns>The result text.</returns>
+        public static string Entitize(string text, bool useNames)
+        {
+            return Entitize(text, useNames, false);
+        }
+
+        /// <summary>
+        /// Replace characters above 127 by entities.
+        /// </summary>
+        /// <param name="text">The source text.</param>
+        /// <param name="useNames">If set to false, the function will not use known entities name. Default is true.</param>
+        /// <param name="entitizeQuotAmpAndLtGt">If set to true, the [quote], [ampersand], [lower than] and [greather than] characters will be entitized.</param>
+        /// <returns>The result text</returns>
+        public static string Entitize(string text, bool useNames, bool entitizeQuotAmpAndLtGt)
+//		_entityValue.Add("quot", 34);	// quotation mark = APL quote, U+0022 ISOnum 
+//		_entityName.Add(34, "quot");
+//		_entityValue.Add("amp", 38);	// ampersand, U+0026 ISOnum 
+//		_entityName.Add(38, "amp");
+//		_entityValue.Add("lt", 60);	// less-than sign, U+003C ISOnum 
+//		_entityName.Add(60, "lt");
+//		_entityValue.Add("gt", 62);	// greater-than sign, U+003E ISOnum 
+//		_entityName.Add(62, "gt");
+        {
+            if (text == null)
+                return null;
+
+            if (text.Length == 0)
+                return text;
+
+            StringBuilder sb = new StringBuilder(text.Length);
+            for (int i = 0; i < text.Length; i++)
+            {
+                int code = text[i];
+                if ((code > 127) ||
+                    (entitizeQuotAmpAndLtGt && ((code == 34) || (code == 38) || (code == 60) || (code == 62))))
+                {
+                    string entity = _entityName[code] as string;
+                    if ((entity == null) || (!useNames))
+                    {
+                        sb.Append("&#" + code + ";");
+                    }
+                    else
+                    {
+                        sb.Append("&" + entity + ";");
+                    }
+                }
+                else
+                {
+                    sb.Append(text[i]);
+                }
+            }
+
+            return sb.ToString();
+        }
+
+        #endregion
+
+        #region Private Methods
+
+        private static void Entitize(HtmlAttributeCollection collection)
+        {
+            foreach (HtmlAttribute at in collection)
+            {
+                at.Value = Entitize(at.Value);
+            }
+        }
+
+        private static void Entitize(HtmlNodeCollection collection)
+        {
+            foreach (HtmlNode node in collection)
+            {
+                if (node.HasAttributes)
+                    Entitize(node.Attributes);
+
+                if (node.HasChildNodes)
+                {
+                    Entitize(node.ChildNodes);
+                }
+                else
+                {
+                    if (node.NodeType == HtmlNodeType.Text)
+                    {
+                        ((HtmlTextNode) node).Text = Entitize(((HtmlTextNode) node).Text, true, true);
+                    }
+                }
+            }
+        }
+
+        #endregion
+
+        #region Nested type: ParseState
+
+        private enum ParseState
+        {
+            Text,
+            EntityStart
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/HtmlNameTable.cs b/docs/HtmlAgilityPack/HtmlNameTable.cs
new file mode 100644
index 0000000..2b9ffd3
--- /dev/null
+++ b/docs/HtmlAgilityPack/HtmlNameTable.cs
@@ -0,0 +1,52 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+using System.Xml;
+
+namespace HtmlAgilityPack
+{
+    internal class HtmlNameTable : XmlNameTable
+    {
+        #region Fields
+
+        private NameTable _nametable = new NameTable();
+
+        #endregion
+
+        #region Public Methods
+
+        public override string Add(string array)
+        {
+            return _nametable.Add(array);
+        }
+
+        public override string Add(char[] array, int offset, int length)
+        {
+            return _nametable.Add(array, offset, length);
+        }
+
+        public override string Get(string array)
+        {
+            return _nametable.Get(array);
+        }
+
+        public override string Get(char[] array, int offset, int length)
+        {
+            return _nametable.Get(array, offset, length);
+        }
+
+        #endregion
+
+        #region Internal Methods
+
+        internal string GetOrAdd(string array)
+        {
+            string s = Get(array);
+            if (s == null)
+            {
+                return Add(array);
+            }
+            return s;
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/HtmlNode.cs b/docs/HtmlAgilityPack/HtmlNode.cs
new file mode 100644
index 0000000..ecc915e
--- /dev/null
+++ b/docs/HtmlAgilityPack/HtmlNode.cs
@@ -0,0 +1,1996 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Diagnostics;
+using System.IO;
+using System.Xml;
+using System.Xml.XPath;
+
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// Represents an HTML node.
+    /// </summary>
+    [DebuggerDisplay("Name: {OriginalName}}")]
+    public class HtmlNode : IXPathNavigable
+    {
+        #region Fields
+
+        internal HtmlAttributeCollection _attributes;
+        internal HtmlNodeCollection _childnodes;
+        internal HtmlNode _endnode;
+
+        internal bool _innerchanged;
+        internal string _innerhtml;
+        internal int _innerlength;
+        internal int _innerstartindex;
+        internal int _line;
+        internal int _lineposition;
+        private string _name;
+        internal int _namelength;
+        internal int _namestartindex;
+        internal HtmlNode _nextnode;
+        internal HtmlNodeType _nodetype;
+        internal bool _outerchanged;
+        internal string _outerhtml;
+        internal int _outerlength;
+        internal int _outerstartindex;
+        internal HtmlDocument _ownerdocument;
+        internal HtmlNode _parentnode;
+        internal HtmlNode _prevnode;
+        internal HtmlNode _prevwithsamename;
+        internal bool _starttag;
+        internal int _streamposition;
+
+        #endregion
+
+        #region Static Members
+
+        /// <summary>
+        /// Gets the name of a comment node. It is actually defined as '#comment'.
+        /// </summary>
+        public static readonly string HtmlNodeTypeNameComment = "#comment";
+
+        /// <summary>
+        /// Gets the name of the document node. It is actually defined as '#document'.
+        /// </summary>
+        public static readonly string HtmlNodeTypeNameDocument = "#document";
+
+        /// <summary>
+        /// Gets the name of a text node. It is actually defined as '#text'.
+        /// </summary>
+        public static readonly string HtmlNodeTypeNameText = "#text";
+
+        /// <summary>
+        /// Gets a collection of flags that define specific behaviors for specific element nodes.
+        /// The table contains a DictionaryEntry list with the lowercase tag name as the Key, and a combination of HtmlElementFlags as the Value.
+        /// </summary>
+        public static Hashtable ElementsFlags;
+
+        #endregion
+
+        #region Constructors
+
+        /// <summary>
+        /// Initialize HtmlNode. Builds a list of all tags that have special allowances
+        /// </summary>
+        static HtmlNode()
+        {
+            // tags whose content may be anything
+            ElementsFlags = new Hashtable();
+            ElementsFlags.Add("script", HtmlElementFlag.CData);
+            ElementsFlags.Add("style", HtmlElementFlag.CData);
+            ElementsFlags.Add("noxhtml", HtmlElementFlag.CData);
+
+            // tags that can not contain other tags
+            ElementsFlags.Add("base", HtmlElementFlag.Empty);
+            ElementsFlags.Add("link", HtmlElementFlag.Empty);
+            ElementsFlags.Add("meta", HtmlElementFlag.Empty);
+            ElementsFlags.Add("isindex", HtmlElementFlag.Empty);
+            ElementsFlags.Add("hr", HtmlElementFlag.Empty);
+            ElementsFlags.Add("col", HtmlElementFlag.Empty);
+            ElementsFlags.Add("img", HtmlElementFlag.Empty);
+            ElementsFlags.Add("param", HtmlElementFlag.Empty);
+            ElementsFlags.Add("embed", HtmlElementFlag.Empty);
+            ElementsFlags.Add("frame", HtmlElementFlag.Empty);
+            ElementsFlags.Add("wbr", HtmlElementFlag.Empty);
+            ElementsFlags.Add("bgsound", HtmlElementFlag.Empty);
+            ElementsFlags.Add("spacer", HtmlElementFlag.Empty);
+            ElementsFlags.Add("keygen", HtmlElementFlag.Empty);
+            ElementsFlags.Add("area", HtmlElementFlag.Empty);
+            ElementsFlags.Add("input", HtmlElementFlag.Empty);
+            ElementsFlags.Add("basefont", HtmlElementFlag.Empty);
+
+            ElementsFlags.Add("form", HtmlElementFlag.CanOverlap | HtmlElementFlag.Empty);
+
+            // they sometimes contain, and sometimes they don 't...
+            ElementsFlags.Add("option", HtmlElementFlag.Empty);
+
+            // tag whose closing tag is equivalent to open tag:
+            // <p>bla</p>bla will be transformed into <p>bla</p>bla
+            // <p>bla<p>bla will be transformed into <p>bla<p>bla and not <p>bla></p><p>bla</p> or <p>bla<p>bla</p></p>
+            //<br> see above
+            ElementsFlags.Add("br", HtmlElementFlag.Empty | HtmlElementFlag.Closed);
+            ElementsFlags.Add("p", HtmlElementFlag.Empty | HtmlElementFlag.Closed);
+        }
+
+        /// <summary>
+        /// Initializes HtmlNode, providing type, owner and where it exists in a collection
+        /// </summary>
+        /// <param name="type"></param>
+        /// <param name="ownerdocument"></param>
+        /// <param name="index"></param>
+        public HtmlNode(HtmlNodeType type, HtmlDocument ownerdocument, int index)
+        {
+            _nodetype = type;
+            _ownerdocument = ownerdocument;
+            _outerstartindex = index;
+
+            switch (type)
+            {
+                case HtmlNodeType.Comment:
+                    Name = HtmlNodeTypeNameComment;
+                    _endnode = this;
+                    break;
+
+                case HtmlNodeType.Document:
+                    Name = HtmlNodeTypeNameDocument;
+                    _endnode = this;
+                    break;
+
+                case HtmlNodeType.Text:
+                    Name = HtmlNodeTypeNameText;
+                    _endnode = this;
+                    break;
+            }
+
+            if (_ownerdocument._openednodes != null)
+            {
+                if (!Closed)
+                {
+                    // we use the index as the key
+
+                    // -1 means the node comes from public
+                    if (-1 != index)
+                    {
+                        _ownerdocument._openednodes.Add(index, this);
+                    }
+                }
+            }
+
+            if ((-1 != index) || (type == HtmlNodeType.Comment) || (type == HtmlNodeType.Text)) return;
+            // innerhtml and outerhtml must be calculated
+            _outerchanged = true;
+            _innerchanged = true;
+        }
+
+        #endregion
+
+        #region Properties
+
+        /// <summary>
+        /// Gets the collection of HTML attributes for this node. May not be null.
+        /// </summary>
+        public HtmlAttributeCollection Attributes
+        {
+            get
+            {
+                if (!HasAttributes)
+                {
+                    _attributes = new HtmlAttributeCollection(this);
+                }
+                return _attributes;
+            }
+            internal set { _attributes = value; }
+        }
+
+        /// <summary>
+        /// Gets all the children of the node.
+        /// </summary>
+        public HtmlNodeCollection ChildNodes
+        {
+            get
+            {
+                if (_childnodes == null)
+                {
+                    _childnodes = new HtmlNodeCollection(this);
+                }
+                return _childnodes;
+            }
+            internal set { _childnodes = value; }
+        }
+
+        /// <summary>
+        /// Gets a value indicating if this node has been closed or not.
+        /// </summary>
+        public bool Closed
+        {
+            get { return (_endnode != null); }
+        }
+
+        /// <summary>
+        /// Gets the collection of HTML attributes for the closing tag. May not be null.
+        /// </summary>
+        public HtmlAttributeCollection ClosingAttributes
+        {
+            get
+            {
+                if (!HasClosingAttributes)
+                {
+                    return new HtmlAttributeCollection(this);
+                }
+                return _endnode.Attributes;
+            }
+        }
+
+        internal HtmlNode EndNode
+        {
+            get { return _endnode; }
+        }
+
+        /// <summary>
+        /// Gets the first child of the node.
+        /// </summary>
+        public HtmlNode FirstChild
+        {
+            get
+            {
+                if (!HasChildNodes)
+                {
+                    return null;
+                }
+                return _childnodes[0];
+            }
+        }
+
+        /// <summary>
+        /// Gets a value indicating whether the current node has any attributes.
+        /// </summary>
+        public bool HasAttributes
+        {
+            get
+            {
+                if (_attributes == null)
+                {
+                    return false;
+                }
+
+                if (_attributes.Count <= 0)
+                {
+                    return false;
+                }
+                return true;
+            }
+        }
+
+        /// <summary>
+        /// Gets a value indicating whether this node has any child nodes.
+        /// </summary>
+        public bool HasChildNodes
+        {
+            get
+            {
+                if (_childnodes == null)
+                {
+                    return false;
+                }
+
+                if (_childnodes.Count <= 0)
+                {
+                    return false;
+                }
+                return true;
+            }
+        }
+
+        /// <summary>
+        /// Gets a value indicating whether the current node has any attributes on the closing tag.
+        /// </summary>
+        public bool HasClosingAttributes
+        {
+            get
+            {
+                if ((_endnode == null) || (_endnode == this))
+                {
+                    return false;
+                }
+
+                if (_endnode._attributes == null)
+                {
+                    return false;
+                }
+
+                if (_endnode._attributes.Count <= 0)
+                {
+                    return false;
+                }
+                return true;
+            }
+        }
+
+        /// <summary>
+        /// Gets or sets the value of the 'id' HTML attribute. The document must have been parsed using the OptionUseIdAttribute set to true.
+        /// </summary>
+        public string Id
+        {
+            get
+            {
+                if (_ownerdocument._nodesid == null)
+                {
+                    throw new Exception(HtmlDocument.HtmlExceptionUseIdAttributeFalse);
+                }
+                return GetId();
+            }
+            set
+            {
+                if (_ownerdocument._nodesid == null)
+                {
+                    throw new Exception(HtmlDocument.HtmlExceptionUseIdAttributeFalse);
+                }
+
+                if (value == null)
+                {
+                    throw new ArgumentNullException("value");
+                }
+                SetId(value);
+            }
+        }
+
+        /// <summary>
+        /// Gets or Sets the HTML between the start and end tags of the object.
+        /// </summary>
+        public virtual string InnerHtml
+        {
+            get
+            {
+                if (_innerchanged)
+                {
+                    _innerhtml = WriteContentTo();
+                    _innerchanged = false;
+                    return _innerhtml;
+                }
+                if (_innerhtml != null)
+                {
+                    return _innerhtml;
+                }
+
+                if (_innerstartindex < 0)
+                {
+                    return string.Empty;
+                }
+
+                return _ownerdocument._text.Substring(_innerstartindex, _innerlength);
+            }
+            set
+            {
+                HtmlDocument doc = new HtmlDocument();
+                doc.LoadHtml(value);
+
+                RemoveAllChildren();
+                AppendChildren(doc.DocumentNode.ChildNodes);
+            }
+        }
+
+        /// <summary>
+        /// Gets or Sets the text between the start and end tags of the object.
+        /// </summary>
+        public virtual string InnerText
+        {
+            get
+            {
+                if (_nodetype == HtmlNodeType.Text)
+                {
+                    return ((HtmlTextNode) this).Text;
+                }
+
+                if (_nodetype == HtmlNodeType.Comment)
+                {
+                    return ((HtmlCommentNode) this).Comment;
+                }
+
+                // note: right now, this method is *slow*, because we recompute everything.
+                // it could be optimised like innerhtml
+                if (!HasChildNodes)
+                {
+                    return string.Empty;
+                }
+
+                string s = null;
+                foreach (HtmlNode node in ChildNodes)
+                {
+                    s += node.InnerText;
+                }
+                return s;
+            }
+        }
+
+        /// <summary>
+        /// Gets the last child of the node.
+        /// </summary>
+        public HtmlNode LastChild
+        {
+            get
+            {
+                return !HasChildNodes ? null : _childnodes[_childnodes.Count - 1];
+            }
+        }
+
+        /// <summary>
+        /// Gets the line number of this node in the document.
+        /// </summary>
+        public int Line
+        {
+            get { return _line; }
+            internal set { _line = value; }
+        }
+
+        /// <summary>
+        /// Gets the column number of this node in the document.
+        /// </summary>
+        public int LinePosition
+        {
+            get { return _lineposition; }
+            internal set { _lineposition = value; }
+        }
+
+        /// <summary>
+        /// Gets or sets this node's name.
+        /// </summary>
+        public string Name
+        {
+            get
+            {
+                if (_name == null)
+                {
+                    Name = _ownerdocument._text.Substring(_namestartindex, _namelength);
+                }
+                return _name != null ? _name.ToLower() : string.Empty;
+            }
+            set { _name = value; }
+        }
+
+        /// <summary>
+        /// Gets the HTML node immediately following this element.
+        /// </summary>
+        public HtmlNode NextSibling
+        {
+            get { return _nextnode; }
+            internal set { _nextnode = value; }
+        }
+
+        /// <summary>
+        /// Gets the type of this node.
+        /// </summary>
+        public HtmlNodeType NodeType
+        {
+            get { return _nodetype; }
+            internal set { _nodetype = value; }
+        }
+
+        /// <summary>
+        /// The original unaltered name of the tag
+        /// </summary>
+        public string OriginalName
+        {
+            get { return _name; }
+        }
+
+        /// <summary>
+        /// Gets or Sets the object and its content in HTML.
+        /// </summary>
+        public virtual string OuterHtml
+        {
+            get
+            {
+                if (_outerchanged)
+                {
+                    _outerhtml = WriteTo();
+                    _outerchanged = false;
+                    return _outerhtml;
+                }
+
+                if (_outerhtml != null)
+                {
+                    return _outerhtml;
+                }
+
+                if (_outerstartindex < 0)
+                {
+                    return string.Empty;
+                }
+
+                return _ownerdocument._text.Substring(_outerstartindex, _outerlength);
+            }
+        }
+
+        /// <summary>
+        /// Gets the <see cref="HtmlDocument"/> to which this node belongs.
+        /// </summary>
+        public HtmlDocument OwnerDocument
+        {
+            get { return _ownerdocument; }
+            internal set { _ownerdocument = value; }
+        }
+
+        /// <summary>
+        /// Gets the parent of this node (for nodes that can have parents).
+        /// </summary>
+        public HtmlNode ParentNode
+        {
+            get { return _parentnode; }
+            internal set { _parentnode = value; }
+        }
+
+        /// <summary>
+        /// Gets the node immediately preceding this node.
+        /// </summary>
+        public HtmlNode PreviousSibling
+        {
+            get { return _prevnode; }
+            internal set { _prevnode = value; }
+        }
+
+        /// <summary>
+        /// Gets the stream position of this node in the document, relative to the start of the document.
+        /// </summary>
+        public int StreamPosition
+        {
+            get { return _streamposition; }
+        }
+
+        /// <summary>
+        /// Gets a valid XPath string that points to this node
+        /// </summary>
+        public string XPath
+        {
+            get
+            {
+                string basePath = (ParentNode == null || ParentNode.NodeType == HtmlNodeType.Document)
+                                      ? "/"
+                                      : ParentNode.XPath + "/";
+                return basePath + GetRelativeXpath();
+            }
+        }
+
+        #endregion
+
+        #region IXPathNavigable Members
+
+        /// <summary>
+        /// Creates a new XPathNavigator object for navigating this HTML node.
+        /// </summary>
+        /// <returns>An XPathNavigator object. The XPathNavigator is positioned on the node from which the method was called. It is not positioned on the root of the document.</returns>
+        public XPathNavigator CreateNavigator()
+        {
+            return new HtmlNodeNavigator(_ownerdocument, this);
+        }
+
+        #endregion
+
+        #region Public Methods
+
+        /// <summary>
+        /// Determines if an element node can be kept overlapped.
+        /// </summary>
+        /// <param name="name">The name of the element node to check. May not be <c>null</c>.</param>
+        /// <returns>true if the name is the name of an element node that can be kept overlapped, <c>false</c> otherwise.</returns>
+        public static bool CanOverlapElement(string name)
+        {
+            if (name == null)
+            {
+                throw new ArgumentNullException("name");
+            }
+
+            object flag = ElementsFlags[name.ToLower()];
+            if (flag == null)
+            {
+                return false;
+            }
+            return (((HtmlElementFlag) flag) & HtmlElementFlag.CanOverlap) != 0;
+        }
+
+        /// <summary>
+        /// Creates an HTML node from a string representing literal HTML.
+        /// </summary>
+        /// <param name="html">The HTML text.</param>
+        /// <returns>The newly created node instance.</returns>
+        public static HtmlNode CreateNode(string html)
+        {
+            // REVIEW: this is *not* optimum...
+            HtmlDocument doc = new HtmlDocument();
+            doc.LoadHtml(html);
+            return doc.DocumentNode.FirstChild;
+        }
+
+        /// <summary>
+        /// Determines if an element node is a CDATA element node.
+        /// </summary>
+        /// <param name="name">The name of the element node to check. May not be null.</param>
+        /// <returns>true if the name is the name of a CDATA element node, false otherwise.</returns>
+        public static bool IsCDataElement(string name)
+        {
+            if (name == null)
+            {
+                throw new ArgumentNullException("name");
+            }
+
+            object flag = ElementsFlags[name.ToLower()];
+            if (flag == null)
+            {
+                return false;
+            }
+            return (((HtmlElementFlag) flag) & HtmlElementFlag.CData) != 0;
+        }
+
+        /// <summary>
+        /// Determines if an element node is closed.
+        /// </summary>
+        /// <param name="name">The name of the element node to check. May not be null.</param>
+        /// <returns>true if the name is the name of a closed element node, false otherwise.</returns>
+        public static bool IsClosedElement(string name)
+        {
+            if (name == null)
+            {
+                throw new ArgumentNullException("name");
+            }
+
+            object flag = ElementsFlags[name.ToLower()];
+            if (flag == null)
+            {
+                return false;
+            }
+            return (((HtmlElementFlag) flag) & HtmlElementFlag.Closed) != 0;
+        }
+
+        /// <summary>
+        /// Determines if an element node is defined as empty.
+        /// </summary>
+        /// <param name="name">The name of the element node to check. May not be null.</param>
+        /// <returns>true if the name is the name of an empty element node, false otherwise.</returns>
+        public static bool IsEmptyElement(string name)
+        {
+            if (name == null)
+            {
+                throw new ArgumentNullException("name");
+            }
+
+            if (name.Length == 0)
+            {
+                return true;
+            }
+
+            // <!DOCTYPE ...
+            if ('!' == name[0])
+            {
+                return true;
+            }
+
+            // <?xml ...
+            if ('?' == name[0])
+            {
+                return true;
+            }
+
+            object flag = ElementsFlags[name.ToLower()];
+            if (flag == null)
+            {
+                return false;
+            }
+            return (((HtmlElementFlag) flag) & HtmlElementFlag.Empty) != 0;
+        }
+
+        /// <summary>
+        /// Determines if a text corresponds to the closing tag of an node that can be kept overlapped.
+        /// </summary>
+        /// <param name="text">The text to check. May not be null.</param>
+        /// <returns>true or false.</returns>
+        public static bool IsOverlappedClosingElement(string text)
+        {
+            if (text == null)
+            {
+                throw new ArgumentNullException("text");
+            }
+            // min is </x>: 4
+            if (text.Length <= 4)
+                return false;
+
+            if ((text[0] != '<') ||
+                (text[text.Length - 1] != '>') ||
+                (text[1] != '/'))
+                return false;
+
+            string name = text.Substring(2, text.Length - 3);
+            return CanOverlapElement(name);
+        }
+
+        /// <summary>
+        /// Returns a collection of all ancestor nodes of this element.
+        /// </summary>
+        /// <returns></returns>
+        public IEnumerable<HtmlNode> Ancestors()
+        {
+            HtmlNode node = ParentNode;
+            while (node.ParentNode != null)
+            {
+                yield return node.ParentNode;
+                node = node.ParentNode;
+            }
+        }
+
+        /// <summary>
+        /// Get Ancestors with matching name
+        /// </summary>
+        /// <param name="name"></param>
+        /// <returns></returns>
+        public IEnumerable<HtmlNode> Ancestors(string name)
+        {
+            for (HtmlNode n = ParentNode; n != null; n = n.ParentNode)
+                if (n.Name == name)
+                    yield return n;
+        }
+
+        /// <summary>
+        /// Returns a collection of all ancestor nodes of this element.
+        /// </summary>
+        /// <returns></returns>
+        public IEnumerable<HtmlNode> AncestorsAndSelf()
+        {
+            for (HtmlNode n = this; n != null; n = n.ParentNode)
+                yield return n;
+        }
+
+        /// <summary>
+        /// Gets all anscestor nodes and the current node
+        /// </summary>
+        /// <param name="name"></param>
+        /// <returns></returns>
+        public IEnumerable<HtmlNode> AncestorsAndSelf(string name)
+        {
+            for (HtmlNode n = this; n != null; n = n.ParentNode)
+                if (n.Name == name)
+                    yield return n;
+        }
+
+        /// <summary>
+        /// Adds the specified node to the end of the list of children of this node.
+        /// </summary>
+        /// <param name="newChild">The node to add. May not be null.</param>
+        /// <returns>The node added.</returns>
+        public HtmlNode AppendChild(HtmlNode newChild)
+        {
+            if (newChild == null)
+            {
+                throw new ArgumentNullException("newChild");
+            }
+
+            ChildNodes.Append(newChild);
+            _ownerdocument.SetIdForNode(newChild, newChild.GetId());
+            _outerchanged = true;
+            _innerchanged = true;
+            return newChild;
+        }
+
+        /// <summary>
+        /// Adds the specified node to the end of the list of children of this node.
+        /// </summary>
+        /// <param name="newChildren">The node list to add. May not be null.</param>
+        public void AppendChildren(HtmlNodeCollection newChildren)
+        {
+            if (newChildren == null)
+                throw new ArgumentNullException("newChildrend");
+
+            foreach (HtmlNode newChild in newChildren)
+            {
+                AppendChild(newChild);
+            }
+        }
+
+        /// <summary>
+        /// Gets all Attributes with name
+        /// </summary>
+        /// <param name="name"></param>
+        /// <returns></returns>
+        public IEnumerable<HtmlAttribute> ChildAttributes(string name)
+        {
+            return Attributes.AttributesWithName(name);
+        }
+
+        /// <summary>
+        /// Creates a duplicate of the node
+        /// </summary>
+        /// <returns></returns>
+        public HtmlNode Clone()
+        {
+            return CloneNode(true);
+        }
+
+        /// <summary>
+        /// Creates a duplicate of the node and changes its name at the same time.
+        /// </summary>
+        /// <param name="newName">The new name of the cloned node. May not be <c>null</c>.</param>
+        /// <returns>The cloned node.</returns>
+        public HtmlNode CloneNode(string newName)
+        {
+            return CloneNode(newName, true);
+        }
+
+        /// <summary>
+        /// Creates a duplicate of the node and changes its name at the same time.
+        /// </summary>
+        /// <param name="newName">The new name of the cloned node. May not be null.</param>
+        /// <param name="deep">true to recursively clone the subtree under the specified node; false to clone only the node itself.</param>
+        /// <returns>The cloned node.</returns>
+        public HtmlNode CloneNode(string newName, bool deep)
+        {
+            if (newName == null)
+            {
+                throw new ArgumentNullException("newName");
+            }
+
+            HtmlNode node = CloneNode(deep);
+            node.Name = newName;
+            return node;
+        }
+
+        /// <summary>
+        /// Creates a duplicate of the node.
+        /// </summary>
+        /// <param name="deep">true to recursively clone the subtree under the specified node; false to clone only the node itself.</param>
+        /// <returns>The cloned node.</returns>
+        public HtmlNode CloneNode(bool deep)
+        {
+            HtmlNode node = _ownerdocument.CreateNode(_nodetype);
+            node.Name = Name;
+
+            switch (_nodetype)
+            {
+                case HtmlNodeType.Comment:
+                    ((HtmlCommentNode) node).Comment = ((HtmlCommentNode) this).Comment;
+                    return node;
+
+                case HtmlNodeType.Text:
+                    ((HtmlTextNode) node).Text = ((HtmlTextNode) this).Text;
+                    return node;
+            }
+
+            // attributes
+            if (HasAttributes)
+            {
+                foreach (HtmlAttribute att in _attributes)
+                {
+                    HtmlAttribute newatt = att.Clone();
+                    node.Attributes.Append(newatt);
+                }
+            }
+
+            // closing attributes
+            if (HasClosingAttributes)
+            {
+                node._endnode = _endnode.CloneNode(false);
+                foreach (HtmlAttribute att in _endnode._attributes)
+                {
+                    HtmlAttribute newatt = att.Clone();
+                    node._endnode._attributes.Append(newatt);
+                }
+            }
+            if (!deep)
+            {
+                return node;
+            }
+
+            if (!HasChildNodes)
+            {
+                return node;
+            }
+
+            // child nodes
+            foreach (HtmlNode child in _childnodes)
+            {
+                HtmlNode newchild = child.Clone();
+                node.AppendChild(newchild);
+            }
+            return node;
+        }
+
+        /// <summary>
+        /// Creates a duplicate of the node and the subtree under it.
+        /// </summary>
+        /// <param name="node">The node to duplicate. May not be <c>null</c>.</param>
+        public void CopyFrom(HtmlNode node)
+        {
+            CopyFrom(node, true);
+        }
+
+        /// <summary>
+        /// Creates a duplicate of the node.
+        /// </summary>
+        /// <param name="node">The node to duplicate. May not be <c>null</c>.</param>
+        /// <param name="deep">true to recursively clone the subtree under the specified node, false to clone only the node itself.</param>
+        public void CopyFrom(HtmlNode node, bool deep)
+        {
+            if (node == null)
+            {
+                throw new ArgumentNullException("node");
+            }
+
+            Attributes.RemoveAll();
+            if (node.HasAttributes)
+            {
+                foreach (HtmlAttribute att in node.Attributes)
+                {
+                    SetAttributeValue(att.Name, att.Value);
+                }
+            }
+
+            if (!deep)
+            {
+                RemoveAllChildren();
+                if (node.HasChildNodes)
+                {
+                    foreach (HtmlNode child in node.ChildNodes)
+                    {
+                        AppendChild(child.CloneNode(true));
+                    }
+                }
+            }
+        }
+
+        /// <summary>
+        /// Creates an XPathNavigator using the root of this document.
+        /// </summary>
+        /// <returns></returns>
+        public XPathNavigator CreateRootNavigator()
+        {
+            return new HtmlNodeNavigator(_ownerdocument, _ownerdocument.DocumentNode);
+        }
+
+        /// <summary>
+        /// Gets all Descendant nodes for this node and each of child nodes
+        /// </summary>
+        /// <returns></returns>
+        public IEnumerable<HtmlNode> DescendantNodes()
+        {
+            foreach (HtmlNode node in ChildNodes)
+            {
+                yield return node;
+                foreach (HtmlNode descendant in node.DescendantNodes())
+                    yield return descendant;
+            }
+        }
+
+        /// <summary>
+        /// Returns a collection of all descendant nodes of this element, in document order
+        /// </summary>
+        /// <returns></returns>
+        public IEnumerable<HtmlNode> DescendantNodesAndSelf()
+        {
+            return DescendantsAndSelf();
+        }
+
+        /// <summary>
+        /// Gets all Descendant nodes in enumerated list
+        /// </summary>
+        /// <returns></returns>
+        public IEnumerable<HtmlNode> Descendants()
+        {
+            foreach (HtmlNode node in DescendantNodes())
+            {
+                yield return node;
+            }
+        }
+
+        /// <summary>
+        /// Get all descendant nodes with matching name
+        /// </summary>
+        /// <param name="name"></param>
+        /// <returns></returns>
+        public IEnumerable<HtmlNode> Descendants(string name)
+        {
+            foreach (HtmlNode node in Descendants())
+                if (node.Name == name)
+                    yield return node;
+        }
+
+        /// <summary>
+        /// Returns a collection of all descendant nodes of this element, in document order
+        /// </summary>
+        /// <returns></returns>
+        public IEnumerable<HtmlNode> DescendantsAndSelf()
+        {
+            yield return this;
+            foreach (HtmlNode n in DescendantNodes())
+            {
+                HtmlNode el = n;
+                if (el != null)
+                    yield return el;
+            }
+        }
+
+        /// <summary>
+        /// Gets all descendant nodes including this node
+        /// </summary>
+        /// <param name="name"></param>
+        /// <returns></returns>
+        public IEnumerable<HtmlNode> DescendantsAndSelf(string name)
+        {
+            yield return this;
+            foreach (HtmlNode node in Descendants())
+                if (node.Name == name)
+                    yield return node;
+        }
+
+        /// <summary>
+        /// Gets first generation child node matching name
+        /// </summary>
+        /// <param name="name"></param>
+        /// <returns></returns>
+        public HtmlNode Element(string name)
+        {
+            foreach (HtmlNode node in ChildNodes)
+                if (node.Name == name)
+                    return node;
+            return null;
+        }
+
+        /// <summary>
+        /// Gets matching first generation child nodes matching name
+        /// </summary>
+        /// <param name="name"></param>
+        /// <returns></returns>
+        public IEnumerable<HtmlNode> Elements(string name)
+        {
+            foreach (HtmlNode node in ChildNodes)
+                if (node.Name == name)
+                    yield return node;
+        }
+
+        /// <summary>
+        /// Helper method to get the value of an attribute of this node. If the attribute is not found, the default value will be returned.
+        /// </summary>
+        /// <param name="name">The name of the attribute to get. May not be <c>null</c>.</param>
+        /// <param name="def">The default value to return if not found.</param>
+        /// <returns>The value of the attribute if found, the default value if not found.</returns>
+        public string GetAttributeValue(string name, string def)
+        {
+            if (name == null)
+            {
+                throw new ArgumentNullException("name");
+            }
+
+            if (!HasAttributes)
+            {
+                return def;
+            }
+            HtmlAttribute att = Attributes[name];
+            if (att == null)
+            {
+                return def;
+            }
+            return att.Value;
+        }
+
+        /// <summary>
+        /// Helper method to get the value of an attribute of this node. If the attribute is not found, the default value will be returned.
+        /// </summary>
+        /// <param name="name">The name of the attribute to get. May not be <c>null</c>.</param>
+        /// <param name="def">The default value to return if not found.</param>
+        /// <returns>The value of the attribute if found, the default value if not found.</returns>
+        public int GetAttributeValue(string name, int def)
+        {
+            if (name == null)
+            {
+                throw new ArgumentNullException("name");
+            }
+
+            if (!HasAttributes)
+            {
+                return def;
+            }
+            HtmlAttribute att = Attributes[name];
+            if (att == null)
+            {
+                return def;
+            }
+            try
+            {
+                return Convert.ToInt32(att.Value);
+            }
+            catch
+            {
+                return def;
+            }
+        }
+
+        /// <summary>
+        /// Helper method to get the value of an attribute of this node. If the attribute is not found, the default value will be returned.
+        /// </summary>
+        /// <param name="name">The name of the attribute to get. May not be <c>null</c>.</param>
+        /// <param name="def">The default value to return if not found.</param>
+        /// <returns>The value of the attribute if found, the default value if not found.</returns>
+        public bool GetAttributeValue(string name, bool def)
+        {
+            if (name == null)
+            {
+                throw new ArgumentNullException("name");
+            }
+
+            if (!HasAttributes)
+            {
+                return def;
+            }
+            HtmlAttribute att = Attributes[name];
+            if (att == null)
+            {
+                return def;
+            }
+            try
+            {
+                return Convert.ToBoolean(att.Value);
+            }
+            catch
+            {
+                return def;
+            }
+        }
+
+        /// <summary>
+        /// Inserts the specified node immediately after the specified reference node.
+        /// </summary>
+        /// <param name="newChild">The node to insert. May not be <c>null</c>.</param>
+        /// <param name="refChild">The node that is the reference node. The newNode is placed after the refNode.</param>
+        /// <returns>The node being inserted.</returns>
+        public HtmlNode InsertAfter(HtmlNode newChild, HtmlNode refChild)
+        {
+            if (newChild == null)
+            {
+                throw new ArgumentNullException("newChild");
+            }
+
+            if (refChild == null)
+            {
+                return PrependChild(newChild);
+            }
+
+            if (newChild == refChild)
+            {
+                return newChild;
+            }
+
+            int index = -1;
+
+            if (_childnodes != null)
+            {
+                index = _childnodes[refChild];
+            }
+            if (index == -1)
+            {
+                throw new ArgumentException(HtmlDocument.HtmlExceptionRefNotChild);
+            }
+
+            if (_childnodes != null) _childnodes.Insert(index + 1, newChild);
+
+            _ownerdocument.SetIdForNode(newChild, newChild.GetId());
+            _outerchanged = true;
+            _innerchanged = true;
+            return newChild;
+        }
+
+        /// <summary>
+        /// Inserts the specified node immediately before the specified reference node.
+        /// </summary>
+        /// <param name="newChild">The node to insert. May not be <c>null</c>.</param>
+        /// <param name="refChild">The node that is the reference node. The newChild is placed before this node.</param>
+        /// <returns>The node being inserted.</returns>
+        public HtmlNode InsertBefore(HtmlNode newChild, HtmlNode refChild)
+        {
+            if (newChild == null)
+            {
+                throw new ArgumentNullException("newChild");
+            }
+
+            if (refChild == null)
+            {
+                return AppendChild(newChild);
+            }
+
+            if (newChild == refChild)
+            {
+                return newChild;
+            }
+
+            int index = -1;
+
+            if (_childnodes != null)
+            {
+                index = _childnodes[refChild];
+            }
+
+            if (index == -1)
+            {
+                throw new ArgumentException(HtmlDocument.HtmlExceptionRefNotChild);
+            }
+
+            if (_childnodes != null) _childnodes.Insert(index, newChild);
+
+            _ownerdocument.SetIdForNode(newChild, newChild.GetId());
+            _outerchanged = true;
+            _innerchanged = true;
+            return newChild;
+        }
+
+        /// <summary>
+        /// Adds the specified node to the beginning of the list of children of this node.
+        /// </summary>
+        /// <param name="newChild">The node to add. May not be <c>null</c>.</param>
+        /// <returns>The node added.</returns>
+        public HtmlNode PrependChild(HtmlNode newChild)
+        {
+            if (newChild == null)
+            {
+                throw new ArgumentNullException("newChild");
+            }
+            ChildNodes.Prepend(newChild);
+            _ownerdocument.SetIdForNode(newChild, newChild.GetId());
+            _outerchanged = true;
+            _innerchanged = true;
+            return newChild;
+        }
+
+        /// <summary>
+        /// Adds the specified node list to the beginning of the list of children of this node.
+        /// </summary>
+        /// <param name="newChildren">The node list to add. May not be <c>null</c>.</param>
+        public void PrependChildren(HtmlNodeCollection newChildren)
+        {
+            if (newChildren == null)
+            {
+                throw new ArgumentNullException("newChildren");
+            }
+
+            foreach (HtmlNode newChild in newChildren)
+            {
+                PrependChild(newChild);
+            }
+        }
+
+        /// <summary>
+        /// Removes node from parent collection
+        /// </summary>
+        public void Remove()
+        {
+            if (ParentNode != null)
+                ParentNode.ChildNodes.Remove(this);
+        }
+
+        /// <summary>
+        /// Removes all the children and/or attributes of the current node.
+        /// </summary>
+        public void RemoveAll()
+        {
+            RemoveAllChildren();
+
+            if (HasAttributes)
+            {
+                _attributes.Clear();
+            }
+
+            if ((_endnode != null) && (_endnode != this))
+            {
+                if (_endnode._attributes != null)
+                {
+                    _endnode._attributes.Clear();
+                }
+            }
+            _outerchanged = true;
+            _innerchanged = true;
+        }
+
+        /// <summary>
+        /// Removes all the children of the current node.
+        /// </summary>
+        public void RemoveAllChildren()
+        {
+            if (!HasChildNodes)
+            {
+                return;
+            }
+
+            if (_ownerdocument.OptionUseIdAttribute)
+            {
+                // remove nodes from id list
+                foreach (HtmlNode node in _childnodes)
+                {
+                    _ownerdocument.SetIdForNode(null, node.GetId());
+                }
+            }
+            _childnodes.Clear();
+            _outerchanged = true;
+            _innerchanged = true;
+        }
+
+        /// <summary>
+        /// Removes the specified child node.
+        /// </summary>
+        /// <param name="oldChild">The node being removed. May not be <c>null</c>.</param>
+        /// <returns>The node removed.</returns>
+        public HtmlNode RemoveChild(HtmlNode oldChild)
+        {
+            if (oldChild == null)
+            {
+                throw new ArgumentNullException("oldChild");
+            }
+
+            int index = -1;
+
+            if (_childnodes != null)
+            {
+                index = _childnodes[oldChild];
+            }
+
+            if (index == -1)
+            {
+                throw new ArgumentException(HtmlDocument.HtmlExceptionRefNotChild);
+            }
+
+            if (_childnodes != null)
+                _childnodes.Remove(index);
+
+            _ownerdocument.SetIdForNode(null, oldChild.GetId());
+            _outerchanged = true;
+            _innerchanged = true;
+            return oldChild;
+        }
+
+        /// <summary>
+        /// Removes the specified child node.
+        /// </summary>
+        /// <param name="oldChild">The node being removed. May not be <c>null</c>.</param>
+        /// <param name="keepGrandChildren">true to keep grand children of the node, false otherwise.</param>
+        /// <returns>The node removed.</returns>
+        public HtmlNode RemoveChild(HtmlNode oldChild, bool keepGrandChildren)
+        {
+            if (oldChild == null)
+            {
+                throw new ArgumentNullException("oldChild");
+            }
+
+            if ((oldChild._childnodes != null) && keepGrandChildren)
+            {
+                // get prev sibling
+                HtmlNode prev = oldChild.PreviousSibling;
+
+                // reroute grand children to ourselves
+                foreach (HtmlNode grandchild in oldChild._childnodes)
+                {
+                    InsertAfter(grandchild, prev);
+                }
+            }
+            RemoveChild(oldChild);
+            _outerchanged = true;
+            _innerchanged = true;
+            return oldChild;
+        }
+
+        /// <summary>
+        /// Replaces the child node oldChild with newChild node.
+        /// </summary>
+        /// <param name="newChild">The new node to put in the child list.</param>
+        /// <param name="oldChild">The node being replaced in the list.</param>
+        /// <returns>The node replaced.</returns>
+        public HtmlNode ReplaceChild(HtmlNode newChild, HtmlNode oldChild)
+        {
+            if (newChild == null)
+            {
+                return RemoveChild(oldChild);
+            }
+
+            if (oldChild == null)
+            {
+                return AppendChild(newChild);
+            }
+
+            int index = -1;
+
+            if (_childnodes != null)
+            {
+                index = _childnodes[oldChild];
+            }
+
+            if (index == -1)
+            {
+                throw new ArgumentException(HtmlDocument.HtmlExceptionRefNotChild);
+            }
+
+            if (_childnodes != null) _childnodes.Replace(index, newChild);
+
+            _ownerdocument.SetIdForNode(null, oldChild.GetId());
+            _ownerdocument.SetIdForNode(newChild, newChild.GetId());
+            _outerchanged = true;
+            _innerchanged = true;
+            return newChild;
+        }
+
+        /// <summary>
+        /// Selects a list of nodes matching the <see cref="XPath"/> expression.
+        /// </summary>
+        /// <param name="xpath">The XPath expression.</param>
+        /// <returns>An <see cref="HtmlNodeCollection"/> containing a collection of nodes matching the <see cref="XPath"/> query, or <c>null</c> if no node matched the XPath expression.</returns>
+        public HtmlNodeCollection SelectNodes(string xpath)
+        {
+            HtmlNodeCollection list = new HtmlNodeCollection(null);
+
+            HtmlNodeNavigator nav = new HtmlNodeNavigator(_ownerdocument, this);
+            XPathNodeIterator it = nav.Select(xpath);
+            while (it.MoveNext())
+            {
+                HtmlNodeNavigator n = (HtmlNodeNavigator) it.Current;
+                list.Add(n.CurrentNode);
+            }
+            if (list.Count == 0)
+            {
+                return null;
+            }
+            return list;
+        }
+
+        /// <summary>
+        /// Selects the first XmlNode that matches the XPath expression.
+        /// </summary>
+        /// <param name="xpath">The XPath expression. May not be null.</param>
+        /// <returns>The first <see cref="HtmlNode"/> that matches the XPath query or a null reference if no matching node was found.</returns>
+        public HtmlNode SelectSingleNode(string xpath)
+        {
+            if (xpath == null)
+            {
+                throw new ArgumentNullException("xpath");
+            }
+
+            HtmlNodeNavigator nav = new HtmlNodeNavigator(_ownerdocument, this);
+            XPathNodeIterator it = nav.Select(xpath);
+            if (!it.MoveNext())
+            {
+                return null;
+            }
+
+            HtmlNodeNavigator node = (HtmlNodeNavigator) it.Current;
+            return node.CurrentNode;
+        }
+
+        /// <summary>
+        /// Helper method to set the value of an attribute of this node. If the attribute is not found, it will be created automatically.
+        /// </summary>
+        /// <param name="name">The name of the attribute to set. May not be null.</param>
+        /// <param name="value">The value for the attribute.</param>
+        /// <returns>The corresponding attribute instance.</returns>
+        public HtmlAttribute SetAttributeValue(string name, string value)
+        {
+            if (name == null)
+            {
+                throw new ArgumentNullException("name");
+            }
+            HtmlAttribute att = Attributes[name];
+            if (att == null)
+            {
+                return Attributes.Append(_ownerdocument.CreateAttribute(name, value));
+            }
+            att.Value = value;
+            return att;
+        }
+
+        /// <summary>
+        /// Saves all the children of the node to the specified TextWriter.
+        /// </summary>
+        /// <param name="outText">The TextWriter to which you want to save.</param>
+        public void WriteContentTo(TextWriter outText)
+        {
+            if (_childnodes == null)
+            {
+                return;
+            }
+
+            foreach (HtmlNode node in _childnodes)
+            {
+                node.WriteTo(outText);
+            }
+        }
+
+        /// <summary>
+        /// Saves all the children of the node to a string.
+        /// </summary>
+        /// <returns>The saved string.</returns>
+        public string WriteContentTo()
+        {
+            StringWriter sw = new StringWriter();
+            WriteContentTo(sw);
+            sw.Flush();
+            return sw.ToString();
+        }
+
+        /// <summary>
+        /// Saves the current node to the specified TextWriter.
+        /// </summary>
+        /// <param name="outText">The TextWriter to which you want to save.</param>
+        public void WriteTo(TextWriter outText)
+        {
+            string html;
+            switch (_nodetype)
+            {
+                case HtmlNodeType.Comment:
+                    html = ((HtmlCommentNode) this).Comment;
+                    if (_ownerdocument.OptionOutputAsXml)
+                    {
+                        outText.Write("<!--" + GetXmlComment((HtmlCommentNode) this) + " -->");
+                    }
+                    else
+                    {
+                        outText.Write(html);
+                    }
+                    break;
+
+                case HtmlNodeType.Document:
+                    if (_ownerdocument.OptionOutputAsXml)
+                    {
+                        outText.Write("<?xml version=\"1.0\" encoding=\"" + _ownerdocument.GetOutEncoding().BodyName +
+                                      "\"?>");
+
+                        // check there is a root element
+                        if (_ownerdocument.DocumentNode.HasChildNodes)
+                        {
+                            int rootnodes = _ownerdocument.DocumentNode._childnodes.Count;
+                            if (rootnodes > 0)
+                            {
+                                HtmlNode xml = _ownerdocument.GetXmlDeclaration();
+                                if (xml != null)
+                                {
+                                    rootnodes --;
+                                }
+
+                                if (rootnodes > 1)
+                                {
+                                    if (_ownerdocument.OptionOutputUpperCase)
+                                    {
+                                        outText.Write("<SPAN>");
+                                        WriteContentTo(outText);
+                                        outText.Write("</SPAN>");
+                                    }
+                                    else
+                                    {
+                                        outText.Write("<span>");
+                                        WriteContentTo(outText);
+                                        outText.Write("</span>");
+                                    }
+                                    break;
+                                }
+                            }
+                        }
+                    }
+                    WriteContentTo(outText);
+                    break;
+
+                case HtmlNodeType.Text:
+                    html = ((HtmlTextNode) this).Text;
+                    if (_ownerdocument.OptionOutputAsXml)
+                    {
+                        outText.Write(HtmlDocument.HtmlEncode(html));
+                    }
+                    else
+                    {
+                        outText.Write(html);
+                    }
+                    break;
+
+                case HtmlNodeType.Element:
+                    string name;
+                    if (_ownerdocument.OptionOutputUpperCase)
+                    {
+                        name = Name.ToUpper();
+                    }
+                    else
+                    {
+                        name = Name;
+                    }
+
+                    if (_ownerdocument.OptionOutputOriginalCase)
+                        name = OriginalName;
+
+                    if (_ownerdocument.OptionOutputAsXml)
+                    {
+                        if (name.Length > 0)
+                        {
+                            if (name[0] == '?')
+                            {
+                                // forget this one, it's been done at the document level
+                                break;
+                            }
+
+                            if (name.Trim().Length == 0)
+                            {
+                                break;
+                            }
+                            name = HtmlDocument.GetXmlName(name);
+                        }
+                        else
+                        {
+                            break;
+                        }
+                    }
+
+                    outText.Write("<" + name);
+                    WriteAttributes(outText, false);
+
+                    if (!HasChildNodes)
+                    {
+                        if (IsEmptyElement(Name))
+                        {
+                            if ((_ownerdocument.OptionWriteEmptyNodes) || (_ownerdocument.OptionOutputAsXml))
+                            {
+                                outText.Write(" />");
+                            }
+                            else
+                            {
+                                if (Name.Length > 0)
+                                {
+                                    if (Name[0] == '?')
+                                    {
+                                        outText.Write("?");
+                                    }
+                                }
+
+                                outText.Write(">");
+                            }
+                        }
+                        else
+                        {
+                            outText.Write("></" + name + ">");
+                        }
+                    }
+                    else
+                    {
+                        outText.Write(">");
+                        bool cdata = false;
+                        if (_ownerdocument.OptionOutputAsXml)
+                        {
+                            if (IsCDataElement(Name))
+                            {
+                                // this code and the following tries to output things as nicely as possible for old browsers.
+                                cdata = true;
+                                outText.Write("\r\n//<![CDATA[\r\n");
+                            }
+                        }
+
+                        if (cdata)
+                        {
+                            if (HasChildNodes)
+                            {
+                                // child must be a text
+                                ChildNodes[0].WriteTo(outText);
+                            }
+                            outText.Write("\r\n//]]>//\r\n");
+                        }
+                        else
+                        {
+                            WriteContentTo(outText);
+                        }
+
+                        outText.Write("</" + name);
+                        if (!_ownerdocument.OptionOutputAsXml)
+                        {
+                            WriteAttributes(outText, true);
+                        }
+                        outText.Write(">");
+                    }
+                    break;
+            }
+        }
+
+        /// <summary>
+        /// Saves the current node to the specified XmlWriter.
+        /// </summary>
+        /// <param name="writer">The XmlWriter to which you want to save.</param>
+        public void WriteTo(XmlWriter writer)
+        {
+            switch (_nodetype)
+            {
+                case HtmlNodeType.Comment:
+                    writer.WriteComment(GetXmlComment((HtmlCommentNode) this));
+                    break;
+
+                case HtmlNodeType.Document:
+                    writer.WriteProcessingInstruction("xml",
+                                                      "version=\"1.0\" encoding=\"" +
+                                                      _ownerdocument.GetOutEncoding().BodyName + "\"");
+                    if (HasChildNodes)
+                    {
+                        foreach (HtmlNode subnode in ChildNodes)
+                        {
+                            subnode.WriteTo(writer);
+                        }
+                    }
+                    break;
+
+                case HtmlNodeType.Text:
+                    string html = ((HtmlTextNode) this).Text;
+                    writer.WriteString(html);
+                    break;
+
+                case HtmlNodeType.Element:
+                    string name = _ownerdocument.OptionOutputUpperCase ? Name.ToUpper() : Name;
+
+                    if (_ownerdocument.OptionOutputOriginalCase)
+                        name = OriginalName;
+
+                    writer.WriteStartElement(name);
+                    WriteAttributes(writer, this);
+
+                    if (HasChildNodes)
+                    {
+                        foreach (HtmlNode subnode in ChildNodes)
+                        {
+                            subnode.WriteTo(writer);
+                        }
+                    }
+                    writer.WriteEndElement();
+                    break;
+            }
+        }
+
+        /// <summary>
+        /// Saves the current node to a string.
+        /// </summary>
+        /// <returns>The saved string.</returns>
+        public string WriteTo()
+        {
+            using (StringWriter sw = new StringWriter())
+            {
+                WriteTo(sw);
+                sw.Flush();
+                return sw.ToString();
+            }
+        }
+
+        #endregion
+
+        #region Internal Methods
+
+        internal static string GetXmlComment(HtmlCommentNode comment)
+        {
+            string s = comment.Comment;
+            return s.Substring(4, s.Length - 7).Replace("--", " - -");
+        }
+
+        internal static void WriteAttributes(XmlWriter writer, HtmlNode node)
+        {
+            if (!node.HasAttributes)
+            {
+                return;
+            }
+            // we use Hashitems to make sure attributes are written only once
+            foreach (HtmlAttribute att in node.Attributes.Hashitems.Values)
+            {
+                writer.WriteAttributeString(att.XmlName, att.Value);
+            }
+        }
+
+        internal void CloseNode(HtmlNode endnode)
+        {
+            if (!_ownerdocument.OptionAutoCloseOnEnd)
+            {
+                // close all children
+                if (_childnodes != null)
+                {
+                    foreach (HtmlNode child in _childnodes)
+                    {
+                        if (child.Closed)
+                            continue;
+
+                        // create a fake closer node
+                        HtmlNode close = new HtmlNode(NodeType, _ownerdocument, -1);
+                        close._endnode = close;
+                        child.CloseNode(close);
+                    }
+                }
+            }
+
+            if (!Closed)
+            {
+                _endnode = endnode;
+
+                if (_ownerdocument._openednodes != null)
+                {
+                    _ownerdocument._openednodes.Remove(_outerstartindex);
+                }
+
+                HtmlNode self = _ownerdocument._lastnodes[Name] as HtmlNode;
+                if (self == this)
+                {
+                    _ownerdocument._lastnodes.Remove(Name);
+                    _ownerdocument.UpdateLastParentNode();
+                }
+
+                if (endnode == this)
+                    return;
+
+                // create an inner section
+                _innerstartindex = _outerstartindex + _outerlength;
+                _innerlength = endnode._outerstartindex - _innerstartindex;
+
+                // update full length
+                _outerlength = (endnode._outerstartindex + endnode._outerlength) - _outerstartindex;
+            }
+        }
+
+        internal string GetId()
+        {
+            HtmlAttribute att = Attributes["id"];
+            if (att == null)
+            {
+                return null;
+            }
+            return att.Value;
+        }
+
+        internal void SetId(string id)
+        {
+            HtmlAttribute att = Attributes["id"];
+            if (att == null)
+            {
+                att = _ownerdocument.CreateAttribute("id");
+            }
+            att.Value = id;
+            _ownerdocument.SetIdForNode(this, att.Value);
+            _outerchanged = true;
+        }
+
+        internal void WriteAttribute(TextWriter outText, HtmlAttribute att)
+        {
+            string name;
+            string quote = att.QuoteType == AttributeValueQuote.DoubleQuote ? "\"" : "'";
+            if (_ownerdocument.OptionOutputAsXml)
+            {
+                if (_ownerdocument.OptionOutputUpperCase)
+                {
+                    name = att.XmlName.ToUpper();
+                }
+                else
+                {
+                    name = att.XmlName;
+                }
+                if (_ownerdocument.OptionOutputOriginalCase)
+                    name = att.OriginalName;
+
+                outText.Write(" " + name + "=" + quote + HtmlDocument.HtmlEncode(att.XmlValue) + quote);
+            }
+            else
+            {
+                if (_ownerdocument.OptionOutputUpperCase)
+                {
+                    name = att.Name.ToUpper();
+                }
+                else
+                {
+                    name = att.Name;
+                }
+
+                if (att.Name.Length >= 4)
+                {
+                    if ((att.Name[0] == '<') && (att.Name[1] == '%') &&
+                        (att.Name[att.Name.Length - 1] == '>') && (att.Name[att.Name.Length - 2] == '%'))
+                    {
+                        outText.Write(" " + name);
+                        return;
+                    }
+                }
+                if (_ownerdocument.OptionOutputOptimizeAttributeValues)
+                {
+                    if (att.Value.IndexOfAny(new Char[] {(char) 10, (char) 13, (char) 9, ' '}) < 0)
+                    {
+                        outText.Write(" " + name + "=" + att.Value);
+                    }
+                    else
+                    {
+                        outText.Write(" " + name + "=" + quote + att.Value + quote);
+                    }
+                }
+                else
+                {
+                    outText.Write(" " + name + "=" + quote + att.Value + quote);
+                }
+            }
+        }
+
+        internal void WriteAttributes(TextWriter outText, bool closing)
+        {
+            if (_ownerdocument.OptionOutputAsXml)
+            {
+                if (_attributes == null)
+                {
+                    return;
+                }
+                // we use Hashitems to make sure attributes are written only once
+                foreach (HtmlAttribute att in _attributes.Hashitems.Values)
+                {
+                    WriteAttribute(outText, att);
+                }
+                return;
+            }
+
+            if (!closing)
+            {
+                if (_attributes != null)
+                {
+                    foreach (HtmlAttribute att in _attributes)
+                    {
+                        WriteAttribute(outText, att);
+                    }
+                }
+                if (_ownerdocument.OptionAddDebuggingAttributes)
+                {
+                    WriteAttribute(outText, _ownerdocument.CreateAttribute("_closed", Closed.ToString()));
+                    WriteAttribute(outText, _ownerdocument.CreateAttribute("_children", ChildNodes.Count.ToString()));
+
+                    int i = 0;
+                    foreach (HtmlNode n in ChildNodes)
+                    {
+                        WriteAttribute(outText, _ownerdocument.CreateAttribute("_child_" + i,
+                                                                               n.Name));
+                        i++;
+                    }
+                }
+            }
+            else
+            {
+                if (_endnode == null)
+                {
+                    return;
+                }
+
+                if (_endnode._attributes == null)
+                {
+                    return;
+                }
+
+                if (_endnode == this)
+                {
+                    return;
+                }
+
+                foreach (HtmlAttribute att in _endnode._attributes)
+                {
+                    WriteAttribute(outText, att);
+                }
+                if (_ownerdocument.OptionAddDebuggingAttributes)
+                {
+                    WriteAttribute(outText, _ownerdocument.CreateAttribute("_closed", Closed.ToString()));
+                    WriteAttribute(outText, _ownerdocument.CreateAttribute("_children", ChildNodes.Count.ToString()));
+                }
+            }
+        }
+
+        #endregion
+
+        #region Private Methods
+
+        private string GetRelativeXpath()
+        {
+            if (ParentNode == null)
+                return Name;
+            if (NodeType == HtmlNodeType.Document)
+                return string.Empty;
+
+            int i = 1;
+            foreach (HtmlNode node in ParentNode.ChildNodes)
+            {
+                if (node.Name != Name) continue;
+
+                if (node == this)
+                    break;
+
+                i++;
+            }
+            return Name + "[" + i + "]";
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/HtmlNodeCollection.cs b/docs/HtmlAgilityPack/HtmlNodeCollection.cs
new file mode 100644
index 0000000..379e370
--- /dev/null
+++ b/docs/HtmlAgilityPack/HtmlNodeCollection.cs
@@ -0,0 +1,512 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+using System;
+using System.Collections;
+using System.Collections.Generic;
+
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// Represents a combined list and collection of HTML nodes.
+    /// </summary>
+    public class HtmlNodeCollection : IList<HtmlNode>
+    {
+        #region Fields
+
+        private readonly HtmlNode _parentnode;
+        private readonly List<HtmlNode> _items = new List<HtmlNode>();
+
+        #endregion
+
+        #region Constructors
+
+        /// <summary>
+        /// Initialize the HtmlNodeCollection with the base parent node
+        /// </summary>
+        /// <param name="parentnode">The base node of the collection</param>
+        public HtmlNodeCollection(HtmlNode parentnode)
+        {
+            _parentnode = parentnode; // may be null
+        }
+
+        #endregion
+
+        #region Properties
+
+        /// <summary>
+        /// Gets a given node from the list.
+        /// </summary>
+        public int this[HtmlNode node]
+        {
+            get
+            {
+                int index = GetNodeIndex(node);
+                if (index == -1)
+                {
+                    throw new ArgumentOutOfRangeException("node",
+                                                          "Node \"" + node.CloneNode(false).OuterHtml +
+                                                          "\" was not found in the collection");
+                }
+                return index;
+            }
+        }
+
+        /// <summary>
+        /// Get node with tag name
+        /// </summary>
+        /// <param name="nodeName"></param>
+        /// <returns></returns>
+        public HtmlNode this[string nodeName]
+        {
+            get
+            {
+                nodeName = nodeName.ToLower();
+                for (int i = 0; i < _items.Count; i++)
+                    if (_items[i].Equals(nodeName))
+                        return _items[i];
+
+                return null;
+            }
+        }
+
+        #endregion
+
+        #region IList<HtmlNode> Members
+
+        /// <summary>
+        /// Gets the number of elements actually contained in the list.
+        /// </summary>
+        public int Count
+        {
+            get { return _items.Count; }
+        }
+
+        /// <summary>
+        /// Is collection read only
+        /// </summary>
+        public bool IsReadOnly
+        {
+            get { return false; }
+        }
+
+        /// <summary>
+        /// Gets the node at the specified index.
+        /// </summary>
+        public HtmlNode this[int index]
+        {
+            get { return _items[index]; }
+            set { _items[index] = value; }
+        }
+
+        /// <summary>
+        /// Add node to the collection
+        /// </summary>
+        /// <param name="node"></param>
+        public void Add(HtmlNode node)
+        {
+            _items.Add(node);
+        }
+
+        /// <summary>
+        /// Clears out the collection of HtmlNodes. Removes each nodes reference to parentnode, nextnode and prevnode
+        /// </summary>
+        public void Clear()
+        {
+            foreach (HtmlNode node in _items)
+            {
+                node.ParentNode = null;
+                node.NextSibling = null;
+                node.PreviousSibling = null;
+            }
+            _items.Clear();
+        }
+
+        /// <summary>
+        /// Gets existence of node in collection
+        /// </summary>
+        /// <param name="item"></param>
+        /// <returns></returns>
+        public bool Contains(HtmlNode item)
+        {
+            return _items.Contains(item);
+        }
+
+        /// <summary>
+        /// Copy collection to array
+        /// </summary>
+        /// <param name="array"></param>
+        /// <param name="arrayIndex"></param>
+        public void CopyTo(HtmlNode[] array, int arrayIndex)
+        {
+            _items.CopyTo(array, arrayIndex);
+        }
+
+        /// <summary>
+        /// Get Enumerator
+        /// </summary>
+        /// <returns></returns>
+        IEnumerator<HtmlNode> IEnumerable<HtmlNode>.GetEnumerator()
+        {
+            return _items.GetEnumerator();
+        }
+
+        /// <summary>
+        /// Get Explicit Enumerator
+        /// </summary>
+        /// <returns></returns>
+        IEnumerator IEnumerable.GetEnumerator()
+        {
+            return _items.GetEnumerator();
+        }
+
+        /// <summary>
+        /// Get index of node
+        /// </summary>
+        /// <param name="item"></param>
+        /// <returns></returns>
+        public int IndexOf(HtmlNode item)
+        {
+            return _items.IndexOf(item);
+        }
+
+        /// <summary>
+        /// Insert node at index
+        /// </summary>
+        /// <param name="index"></param>
+        /// <param name="node"></param>
+        public void Insert(int index, HtmlNode node)
+        {
+            HtmlNode next = null;
+            HtmlNode prev = null;
+
+            if (index > 0)
+            {
+                prev = _items[index - 1];
+            }
+
+            if (index < _items.Count)
+            {
+                next = _items[index];
+            }
+
+            _items.Insert(index, node);
+
+            if (prev != null)
+            {
+                if (node == prev)
+                {
+                    throw new InvalidProgramException("Unexpected error.");
+                }
+                prev._nextnode = node;
+            }
+
+            if (next != null)
+            {
+                next._prevnode = node;
+            }
+
+            node._prevnode = prev;
+            if (next == node)
+            {
+                throw new InvalidProgramException("Unexpected error.");
+            }
+            node._nextnode = next;
+            node._parentnode = _parentnode;
+        }
+
+        /// <summary>
+        /// Remove node
+        /// </summary>
+        /// <param name="item"></param>
+        /// <returns></returns>
+        public bool Remove(HtmlNode item)
+        {
+            int i = _items.IndexOf(item);
+            RemoveAt(i);
+            return true;
+        }
+
+        /// <summary>
+        /// Remove <see cref="HtmlNode"/> at index
+        /// </summary>
+        /// <param name="index"></param>
+        public void RemoveAt(int index)
+        {
+            HtmlNode next = null;
+            HtmlNode prev = null;
+            HtmlNode oldnode = _items[index];
+
+            if (index > 0)
+            {
+                prev = _items[index - 1];
+            }
+
+            if (index < (_items.Count - 1))
+            {
+                next = _items[index + 1];
+            }
+
+            _items.RemoveAt(index);
+
+            if (prev != null)
+            {
+                if (next == prev)
+                {
+                    throw new InvalidProgramException("Unexpected error.");
+                }
+                prev._nextnode = next;
+            }
+
+            if (next != null)
+            {
+                next._prevnode = prev;
+            }
+
+            oldnode._prevnode = null;
+            oldnode._nextnode = null;
+            oldnode._parentnode = null;
+        }
+
+        #endregion
+
+        #region Public Methods
+
+        /// <summary>
+        /// Get first instance of node in supplied collection
+        /// </summary>
+        /// <param name="items"></param>
+        /// <param name="name"></param>
+        /// <returns></returns>
+        public static HtmlNode FindFirst(HtmlNodeCollection items, string name)
+        {
+            foreach (HtmlNode node in items)
+            {
+                if (node.Name.ToLower().Contains(name))
+                    return node;
+                if (node.HasChildNodes)
+                {
+                    HtmlNode returnNode = FindFirst(node.ChildNodes, name);
+                    if (returnNode != null)
+                        return returnNode;
+                }
+            }
+            return null;
+        }
+
+        /// <summary>
+        /// Add node to the end of the collection
+        /// </summary>
+        /// <param name="node"></param>
+        public void Append(HtmlNode node)
+        {
+            HtmlNode last = null;
+            if (_items.Count > 0)
+            {
+                last = _items[_items.Count - 1];
+            }
+
+            _items.Add(node);
+            node._prevnode = last;
+            node._nextnode = null;
+            node._parentnode = _parentnode;
+            if (last != null)
+            {
+                if (last == node)
+                {
+                    throw new InvalidProgramException("Unexpected error.");
+                }
+                last._nextnode = node;
+            }
+        }
+
+        /// <summary>
+        /// Get first instance of node with name
+        /// </summary>
+        /// <param name="name"></param>
+        /// <returns></returns>
+        public HtmlNode FindFirst(string name)
+        {
+            return FindFirst(this, name);
+        }
+
+        /// <summary>
+        /// Get index of node
+        /// </summary>
+        /// <param name="node"></param>
+        /// <returns></returns>
+        public int GetNodeIndex(HtmlNode node)
+        {
+            // TODO: should we rewrite this? what would be the key of a node?
+            for (int i = 0; i < _items.Count; i++)
+            {
+                if (node == (_items[i]))
+                {
+                    return i;
+                }
+            }
+            return -1;
+        }
+
+        /// <summary>
+        /// Add node to the beginning of the collection
+        /// </summary>
+        /// <param name="node"></param>
+        public void Prepend(HtmlNode node)
+        {
+            HtmlNode first = null;
+            if (_items.Count > 0)
+            {
+                first = _items[0];
+            }
+
+            _items.Insert(0, node);
+
+            if (node == first)
+            {
+                throw new InvalidProgramException("Unexpected error.");
+            }
+            node._nextnode = first;
+            node._prevnode = null;
+            node._parentnode = _parentnode;
+            if (first != null)
+            {
+                first._prevnode = node;
+            }
+        }
+
+        /// <summary>
+        /// Remove node at index
+        /// </summary>
+        /// <param name="index"></param>
+        /// <returns></returns>
+        public bool Remove(int index)
+        {
+            RemoveAt(index);
+            return true;
+        }
+
+        /// <summary>
+        /// Replace node at index
+        /// </summary>
+        /// <param name="index"></param>
+        /// <param name="node"></param>
+        public void Replace(int index, HtmlNode node)
+        {
+            HtmlNode next = null;
+            HtmlNode prev = null;
+            HtmlNode oldnode = _items[index];
+
+            if (index > 0)
+            {
+                prev = _items[index - 1];
+            }
+
+            if (index < (_items.Count - 1))
+            {
+                next = _items[index + 1];
+            }
+
+            _items[index] = node;
+
+            if (prev != null)
+            {
+                if (node == prev)
+                {
+                    throw new InvalidProgramException("Unexpected error.");
+                }
+                prev._nextnode = node;
+            }
+
+            if (next != null)
+            {
+                next._prevnode = node;
+            }
+
+            node._prevnode = prev;
+
+            if (next == node)
+            {
+                throw new InvalidProgramException("Unexpected error.");
+            }
+
+            node._nextnode = next;
+            node._parentnode = _parentnode;
+
+            oldnode._prevnode = null;
+            oldnode._nextnode = null;
+            oldnode._parentnode = null;
+        }
+
+        #endregion
+
+        #region LINQ Methods
+
+        /// <summary>
+        /// Get all node descended from this collection
+        /// </summary>
+        /// <returns></returns>
+        public IEnumerable<HtmlNode> DescendantNodes()
+        {
+            foreach (HtmlNode item in _items)
+                foreach (HtmlNode n in item.DescendantNodes())
+                    yield return n;
+        }
+
+        /// <summary>
+        /// Get all node descended from this collection
+        /// </summary>
+        /// <returns></returns>
+        public IEnumerable<HtmlNode> Descendants()
+        {
+            foreach (HtmlNode item in _items)
+                foreach (HtmlNode n in item.Descendants())
+                    yield return n;
+        }
+
+        /// <summary>
+        /// Get all node descended from this collection with matching name
+        /// </summary>
+        /// <returns></returns>
+        public IEnumerable<HtmlNode> Descendants(string name)
+        {
+            foreach (HtmlNode item in _items)
+                foreach (HtmlNode n in item.Descendants(name))
+                    yield return n;
+        }
+
+        /// <summary>
+        /// Gets all first generation elements in collection
+        /// </summary>
+        /// <returns></returns>
+        public IEnumerable<HtmlNode> Elements()
+        {
+            foreach (HtmlNode item in _items)
+                foreach (HtmlNode n in item.ChildNodes)
+                    yield return n;
+        }
+
+        /// <summary>
+        /// Gets all first generation elements matching name
+        /// </summary>
+        /// <param name="name"></param>
+        /// <returns></returns>
+        public IEnumerable<HtmlNode> Elements(string name)
+        {
+            foreach (HtmlNode item in _items)
+                foreach (HtmlNode n in item.Elements(name))
+                    yield return n;
+        }
+
+        /// <summary>
+        /// All first generation nodes in collection
+        /// </summary>
+        /// <returns></returns>
+        public IEnumerable<HtmlNode> Nodes()
+        {
+            foreach (HtmlNode item in _items)
+                foreach (HtmlNode n in item.ChildNodes)
+                    yield return n;
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/HtmlNodeNavigator.cs b/docs/HtmlAgilityPack/HtmlNodeNavigator.cs
new file mode 100644
index 0000000..78375ed
--- /dev/null
+++ b/docs/HtmlAgilityPack/HtmlNodeNavigator.cs
@@ -0,0 +1,768 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+using System;
+using System.Diagnostics;
+using System.IO;
+using System.Text;
+using System.Xml;
+using System.Xml.XPath;
+
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// Represents an HTML navigator on an HTML document seen as a data store.
+    /// </summary>
+    public class HtmlNodeNavigator : XPathNavigator
+    {
+        #region Fields
+
+        private int _attindex;
+        private HtmlNode _currentnode;
+        private HtmlDocument _doc = new HtmlDocument();
+        private HtmlNameTable _nametable = new HtmlNameTable();
+
+        internal bool Trace;
+
+        #endregion
+
+        #region Constructors
+
+        internal HtmlNodeNavigator()
+        {
+            Reset();
+        }
+
+        internal HtmlNodeNavigator(HtmlDocument doc, HtmlNode currentNode)
+        {
+            if (currentNode == null)
+            {
+                throw new ArgumentNullException("currentNode");
+            }
+            if (currentNode.OwnerDocument != doc)
+            {
+                throw new ArgumentException(HtmlDocument.HtmlExceptionRefNotChild);
+            }
+            InternalTrace(null);
+
+            _doc = doc;
+            Reset();
+            _currentnode = currentNode;
+        }
+
+        private HtmlNodeNavigator(HtmlNodeNavigator nav)
+        {
+            if (nav == null)
+            {
+                throw new ArgumentNullException("nav");
+            }
+            InternalTrace(null);
+
+            _doc = nav._doc;
+            _currentnode = nav._currentnode;
+            _attindex = nav._attindex;
+            _nametable = nav._nametable; // REVIEW: should we do this?
+        }
+
+        /// <summary>
+        /// Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream.
+        /// </summary>
+        /// <param name="stream">The input stream.</param>
+        public HtmlNodeNavigator(Stream stream)
+        {
+            _doc.Load(stream);
+            Reset();
+        }
+
+        /// <summary>
+        /// Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream.
+        /// </summary>
+        /// <param name="stream">The input stream.</param>
+        /// <param name="detectEncodingFromByteOrderMarks">Indicates whether to look for byte order marks at the beginning of the stream.</param>
+        public HtmlNodeNavigator(Stream stream, bool detectEncodingFromByteOrderMarks)
+        {
+            _doc.Load(stream, detectEncodingFromByteOrderMarks);
+            Reset();
+        }
+
+        /// <summary>
+        /// Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream.
+        /// </summary>
+        /// <param name="stream">The input stream.</param>
+        /// <param name="encoding">The character encoding to use.</param>
+        public HtmlNodeNavigator(Stream stream, Encoding encoding)
+        {
+            _doc.Load(stream, encoding);
+            Reset();
+        }
+
+        /// <summary>
+        /// Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream.
+        /// </summary>
+        /// <param name="stream">The input stream.</param>
+        /// <param name="encoding">The character encoding to use.</param>
+        /// <param name="detectEncodingFromByteOrderMarks">Indicates whether to look for byte order marks at the beginning of the stream.</param>
+        public HtmlNodeNavigator(Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks)
+        {
+            _doc.Load(stream, encoding, detectEncodingFromByteOrderMarks);
+            Reset();
+        }
+
+        /// <summary>
+        /// Initializes a new instance of the HtmlNavigator and loads an HTML document from a stream.
+        /// </summary>
+        /// <param name="stream">The input stream.</param>
+        /// <param name="encoding">The character encoding to use.</param>
+        /// <param name="detectEncodingFromByteOrderMarks">Indicates whether to look for byte order marks at the beginning of the stream.</param>
+        /// <param name="buffersize">The minimum buffer size.</param>
+        public HtmlNodeNavigator(Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks, int buffersize)
+        {
+            _doc.Load(stream, encoding, detectEncodingFromByteOrderMarks, buffersize);
+            Reset();
+        }
+
+        /// <summary>
+        /// Initializes a new instance of the HtmlNavigator and loads an HTML document from a TextReader.
+        /// </summary>
+        /// <param name="reader">The TextReader used to feed the HTML data into the document.</param>
+        public HtmlNodeNavigator(TextReader reader)
+        {
+            _doc.Load(reader);
+            Reset();
+        }
+
+        /// <summary>
+        /// Initializes a new instance of the HtmlNavigator and loads an HTML document from a file.
+        /// </summary>
+        /// <param name="path">The complete file path to be read.</param>
+        public HtmlNodeNavigator(string path)
+        {
+            _doc.Load(path);
+            Reset();
+        }
+
+        /// <summary>
+        /// Initializes a new instance of the HtmlNavigator and loads an HTML document from a file.
+        /// </summary>
+        /// <param name="path">The complete file path to be read.</param>
+        /// <param name="detectEncodingFromByteOrderMarks">Indicates whether to look for byte order marks at the beginning of the file.</param>
+        public HtmlNodeNavigator(string path, bool detectEncodingFromByteOrderMarks)
+        {
+            _doc.Load(path, detectEncodingFromByteOrderMarks);
+            Reset();
+        }
+
+        /// <summary>
+        /// Initializes a new instance of the HtmlNavigator and loads an HTML document from a file.
+        /// </summary>
+        /// <param name="path">The complete file path to be read.</param>
+        /// <param name="encoding">The character encoding to use.</param>
+        public HtmlNodeNavigator(string path, Encoding encoding)
+        {
+            _doc.Load(path, encoding);
+            Reset();
+        }
+
+        /// <summary>
+        /// Initializes a new instance of the HtmlNavigator and loads an HTML document from a file.
+        /// </summary>
+        /// <param name="path">The complete file path to be read.</param>
+        /// <param name="encoding">The character encoding to use.</param>
+        /// <param name="detectEncodingFromByteOrderMarks">Indicates whether to look for byte order marks at the beginning of the file.</param>
+        public HtmlNodeNavigator(string path, Encoding encoding, bool detectEncodingFromByteOrderMarks)
+        {
+            _doc.Load(path, encoding, detectEncodingFromByteOrderMarks);
+            Reset();
+        }
+
+        /// <summary>
+        /// Initializes a new instance of the HtmlNavigator and loads an HTML document from a file.
+        /// </summary>
+        /// <param name="path">The complete file path to be read.</param>
+        /// <param name="encoding">The character encoding to use.</param>
+        /// <param name="detectEncodingFromByteOrderMarks">Indicates whether to look for byte order marks at the beginning of the file.</param>
+        /// <param name="buffersize">The minimum buffer size.</param>
+        public HtmlNodeNavigator(string path, Encoding encoding, bool detectEncodingFromByteOrderMarks, int buffersize)
+        {
+            _doc.Load(path, encoding, detectEncodingFromByteOrderMarks, buffersize);
+            Reset();
+        }
+
+        #endregion
+
+        #region Properties
+
+        /// <summary>
+        /// Gets the base URI for the current node.
+        /// Always returns string.Empty in the case of HtmlNavigator implementation.
+        /// </summary>
+        public override string BaseURI
+        {
+            get
+            {
+                InternalTrace(">");
+                return _nametable.GetOrAdd(string.Empty);
+            }
+        }
+
+        /// <summary>
+        /// Gets the current HTML document.
+        /// </summary>
+        public HtmlDocument CurrentDocument
+        {
+            get { return _doc; }
+        }
+
+        /// <summary>
+        /// Gets the current HTML node.
+        /// </summary>
+        public HtmlNode CurrentNode
+        {
+            get { return _currentnode; }
+        }
+
+        /// <summary>
+        /// Gets a value indicating whether the current node has child nodes.
+        /// </summary>
+        public override bool HasAttributes
+        {
+            get
+            {
+                InternalTrace(">" + (_currentnode.Attributes.Count > 0));
+                return (_currentnode.Attributes.Count > 0);
+            }
+        }
+
+        /// <summary>
+        /// Gets a value indicating whether the current node has child nodes.
+        /// </summary>
+        public override bool HasChildren
+        {
+            get
+            {
+                InternalTrace(">" + (_currentnode.ChildNodes.Count > 0));
+                return (_currentnode.ChildNodes.Count > 0);
+            }
+        }
+
+        /// <summary>
+        /// Gets a value indicating whether the current node is an empty element.
+        /// </summary>
+        public override bool IsEmptyElement
+        {
+            get
+            {
+                InternalTrace(">" + !HasChildren);
+                // REVIEW: is this ok?
+                return !HasChildren;
+            }
+        }
+
+        /// <summary>
+        /// Gets the name of the current HTML node without the namespace prefix.
+        /// </summary>
+        public override string LocalName
+        {
+            get
+            {
+                if (_attindex != -1)
+                {
+                    InternalTrace("att>" + _currentnode.Attributes[_attindex].Name);
+                    return _nametable.GetOrAdd(_currentnode.Attributes[_attindex].Name);
+                }
+                InternalTrace("node>" + _currentnode.Name);
+                return _nametable.GetOrAdd(_currentnode.Name);
+            }
+        }
+
+        /// <summary>
+        /// Gets the qualified name of the current node.
+        /// </summary>
+        public override string Name
+        {
+            get
+            {
+                InternalTrace(">" + _currentnode.Name);
+                return _nametable.GetOrAdd(_currentnode.Name);
+            }
+        }
+
+        /// <summary>
+        /// Gets the namespace URI (as defined in the W3C Namespace Specification) of the current node.
+        /// Always returns string.Empty in the case of HtmlNavigator implementation.
+        /// </summary>
+        public override string NamespaceURI
+        {
+            get
+            {
+                InternalTrace(">");
+                return _nametable.GetOrAdd(string.Empty);
+            }
+        }
+
+        /// <summary>
+        /// Gets the <see cref="XmlNameTable"/> associated with this implementation.
+        /// </summary>
+        public override XmlNameTable NameTable
+        {
+            get
+            {
+                InternalTrace(null);
+                return _nametable;
+            }
+        }
+
+        /// <summary>
+        /// Gets the type of the current node.
+        /// </summary>
+        public override XPathNodeType NodeType
+        {
+            get
+            {
+                switch (_currentnode.NodeType)
+                {
+                    case HtmlNodeType.Comment:
+                        InternalTrace(">" + XPathNodeType.Comment);
+                        return XPathNodeType.Comment;
+
+                    case HtmlNodeType.Document:
+                        InternalTrace(">" + XPathNodeType.Root);
+                        return XPathNodeType.Root;
+
+                    case HtmlNodeType.Text:
+                        InternalTrace(">" + XPathNodeType.Text);
+                        return XPathNodeType.Text;
+
+                    case HtmlNodeType.Element:
+                        {
+                            if (_attindex != -1)
+                            {
+                                InternalTrace(">" + XPathNodeType.Attribute);
+                                return XPathNodeType.Attribute;
+                            }
+                            InternalTrace(">" + XPathNodeType.Element);
+                            return XPathNodeType.Element;
+                        }
+
+                    default:
+                        throw new NotImplementedException("Internal error: Unhandled HtmlNodeType: " +
+                                                          _currentnode.NodeType);
+                }
+            }
+        }
+
+        /// <summary>
+        /// Gets the prefix associated with the current node.
+        /// Always returns string.Empty in the case of HtmlNavigator implementation.
+        /// </summary>
+        public override string Prefix
+        {
+            get
+            {
+                InternalTrace(null);
+                return _nametable.GetOrAdd(string.Empty);
+            }
+        }
+
+        /// <summary>
+        /// Gets the text value of the current node.
+        /// </summary>
+        public override string Value
+        {
+            get
+            {
+                InternalTrace("nt=" + _currentnode.NodeType);
+                switch (_currentnode.NodeType)
+                {
+                    case HtmlNodeType.Comment:
+                        InternalTrace(">" + ((HtmlCommentNode) _currentnode).Comment);
+                        return ((HtmlCommentNode) _currentnode).Comment;
+
+                    case HtmlNodeType.Document:
+                        InternalTrace(">");
+                        return "";
+
+                    case HtmlNodeType.Text:
+                        InternalTrace(">" + ((HtmlTextNode) _currentnode).Text);
+                        return ((HtmlTextNode) _currentnode).Text;
+
+                    case HtmlNodeType.Element:
+                        {
+                            if (_attindex != -1)
+                            {
+                                InternalTrace(">" + _currentnode.Attributes[_attindex].Value);
+                                return _currentnode.Attributes[_attindex].Value;
+                            }
+                            return _currentnode.InnerText;
+                        }
+
+                    default:
+                        throw new NotImplementedException("Internal error: Unhandled HtmlNodeType: " +
+                                                          _currentnode.NodeType);
+                }
+            }
+        }
+
+        /// <summary>
+        /// Gets the xml:lang scope for the current node.
+        /// Always returns string.Empty in the case of HtmlNavigator implementation.
+        /// </summary>
+        public override string XmlLang
+        {
+            get
+            {
+                InternalTrace(null);
+                return _nametable.GetOrAdd(string.Empty);
+            }
+        }
+
+        #endregion
+
+        #region Public Methods
+
+        /// <summary>
+        /// Creates a new HtmlNavigator positioned at the same node as this HtmlNavigator.
+        /// </summary>
+        /// <returns>A new HtmlNavigator object positioned at the same node as the original HtmlNavigator.</returns>
+        public override XPathNavigator Clone()
+        {
+            InternalTrace(null);
+            return new HtmlNodeNavigator(this);
+        }
+
+        /// <summary>
+        /// Gets the value of the HTML attribute with the specified LocalName and NamespaceURI.
+        /// </summary>
+        /// <param name="localName">The local name of the HTML attribute.</param>
+        /// <param name="namespaceURI">The namespace URI of the attribute. Unsupported with the HtmlNavigator implementation.</param>
+        /// <returns>The value of the specified HTML attribute. String.Empty or null if a matching attribute is not found or if the navigator is not positioned on an element node.</returns>
+        public override string GetAttribute(string localName, string namespaceURI)
+        {
+            InternalTrace("localName=" + localName + ", namespaceURI=" + namespaceURI);
+            HtmlAttribute att = _currentnode.Attributes[localName];
+            if (att == null)
+            {
+                InternalTrace(">null");
+                return null;
+            }
+            InternalTrace(">" + att.Value);
+            return att.Value;
+        }
+
+        /// <summary>
+        /// Returns the value of the namespace node corresponding to the specified local name.
+        /// Always returns string.Empty for the HtmlNavigator implementation.
+        /// </summary>
+        /// <param name="name">The local name of the namespace node.</param>
+        /// <returns>Always returns string.Empty for the HtmlNavigator implementation.</returns>
+        public override string GetNamespace(string name)
+        {
+            InternalTrace("name=" + name);
+            return string.Empty;
+        }
+
+        /// <summary>
+        /// Determines whether the current HtmlNavigator is at the same position as the specified HtmlNavigator.
+        /// </summary>
+        /// <param name="other">The HtmlNavigator that you want to compare against.</param>
+        /// <returns>true if the two navigators have the same position, otherwise, false.</returns>
+        public override bool IsSamePosition(XPathNavigator other)
+        {
+            HtmlNodeNavigator nav = other as HtmlNodeNavigator;
+            if (nav == null)
+            {
+                InternalTrace(">false");
+                return false;
+            }
+            InternalTrace(">" + (nav._currentnode == _currentnode));
+            return (nav._currentnode == _currentnode);
+        }
+
+        /// <summary>
+        /// Moves to the same position as the specified HtmlNavigator.
+        /// </summary>
+        /// <param name="other">The HtmlNavigator positioned on the node that you want to move to.</param>
+        /// <returns>true if successful, otherwise false. If false, the position of the navigator is unchanged.</returns>
+        public override bool MoveTo(XPathNavigator other)
+        {
+            HtmlNodeNavigator nav = other as HtmlNodeNavigator;
+            if (nav == null)
+            {
+                InternalTrace(">false (nav is not an HtmlNodeNavigator)");
+                return false;
+            }
+            InternalTrace("moveto oid=" + nav.GetHashCode()
+                          + ", n:" + nav._currentnode.Name
+                          + ", a:" + nav._attindex);
+
+            if (nav._doc == _doc)
+            {
+                _currentnode = nav._currentnode;
+                _attindex = nav._attindex;
+                InternalTrace(">true");
+                return true;
+            }
+            // we don't know how to handle that
+            InternalTrace(">false (???)");
+            return false;
+        }
+
+        /// <summary>
+        /// Moves to the HTML attribute with matching LocalName and NamespaceURI.
+        /// </summary>
+        /// <param name="localName">The local name of the HTML attribute.</param>
+        /// <param name="namespaceURI">The namespace URI of the attribute. Unsupported with the HtmlNavigator implementation.</param>
+        /// <returns>true if the HTML attribute is found, otherwise, false. If false, the position of the navigator does not change.</returns>
+        public override bool MoveToAttribute(string localName, string namespaceURI)
+        {
+            InternalTrace("localName=" + localName + ", namespaceURI=" + namespaceURI);
+            int index = _currentnode.Attributes.GetAttributeIndex(localName);
+            if (index == -1)
+            {
+                InternalTrace(">false");
+                return false;
+            }
+            _attindex = index;
+            InternalTrace(">true");
+            return true;
+        }
+
+        /// <summary>
+        /// Moves to the first sibling of the current node.
+        /// </summary>
+        /// <returns>true if the navigator is successful moving to the first sibling node, false if there is no first sibling or if the navigator is currently positioned on an attribute node.</returns>
+        public override bool MoveToFirst()
+        {
+            if (_currentnode.ParentNode == null)
+            {
+                InternalTrace(">false");
+                return false;
+            }
+            if (_currentnode.ParentNode.FirstChild == null)
+            {
+                InternalTrace(">false");
+                return false;
+            }
+            _currentnode = _currentnode.ParentNode.FirstChild;
+            InternalTrace(">true");
+            return true;
+        }
+
+        /// <summary>
+        /// Moves to the first HTML attribute.
+        /// </summary>
+        /// <returns>true if the navigator is successful moving to the first HTML attribute, otherwise, false.</returns>
+        public override bool MoveToFirstAttribute()
+        {
+            if (!HasAttributes)
+            {
+                InternalTrace(">false");
+                return false;
+            }
+            _attindex = 0;
+            InternalTrace(">true");
+            return true;
+        }
+
+        /// <summary>
+        /// Moves to the first child of the current node.
+        /// </summary>
+        /// <returns>true if there is a first child node, otherwise false.</returns>
+        public override bool MoveToFirstChild()
+        {
+            if (!_currentnode.HasChildNodes)
+            {
+                InternalTrace(">false");
+                return false;
+            }
+            _currentnode = _currentnode.ChildNodes[0];
+            InternalTrace(">true");
+            return true;
+        }
+
+        /// <summary>
+        /// Moves the XPathNavigator to the first namespace node of the current element.
+        /// Always returns false for the HtmlNavigator implementation.
+        /// </summary>
+        /// <param name="scope">An XPathNamespaceScope value describing the namespace scope.</param>
+        /// <returns>Always returns false for the HtmlNavigator implementation.</returns>
+        public override bool MoveToFirstNamespace(XPathNamespaceScope scope)
+        {
+            InternalTrace(null);
+            return false;
+        }
+
+        /// <summary>
+        /// Moves to the node that has an attribute of type ID whose value matches the specified string.
+        /// </summary>
+        /// <param name="id">A string representing the ID value of the node to which you want to move. This argument does not need to be atomized.</param>
+        /// <returns>true if the move was successful, otherwise false. If false, the position of the navigator is unchanged.</returns>
+        public override bool MoveToId(string id)
+        {
+            InternalTrace("id=" + id);
+            HtmlNode node = _doc.GetElementbyId(id);
+            if (node == null)
+            {
+                InternalTrace(">false");
+                return false;
+            }
+            _currentnode = node;
+            InternalTrace(">true");
+            return true;
+        }
+
+        /// <summary>
+        /// Moves the XPathNavigator to the namespace node with the specified local name. 
+        /// Always returns false for the HtmlNavigator implementation.
+        /// </summary>
+        /// <param name="name">The local name of the namespace node.</param>
+        /// <returns>Always returns false for the HtmlNavigator implementation.</returns>
+        public override bool MoveToNamespace(string name)
+        {
+            InternalTrace("name=" + name);
+            return false;
+        }
+
+        /// <summary>
+        /// Moves to the next sibling of the current node.
+        /// </summary>
+        /// <returns>true if the navigator is successful moving to the next sibling node, false if there are no more siblings or if the navigator is currently positioned on an attribute node. If false, the position of the navigator is unchanged.</returns>
+        public override bool MoveToNext()
+        {
+            if (_currentnode.NextSibling == null)
+            {
+                InternalTrace(">false");
+                return false;
+            }
+            InternalTrace("_c=" + _currentnode.CloneNode(false).OuterHtml);
+            InternalTrace("_n=" + _currentnode.NextSibling.CloneNode(false).OuterHtml);
+            _currentnode = _currentnode.NextSibling;
+            InternalTrace(">true");
+            return true;
+        }
+
+        /// <summary>
+        /// Moves to the next HTML attribute.
+        /// </summary>
+        /// <returns></returns>
+        public override bool MoveToNextAttribute()
+        {
+            InternalTrace(null);
+            if (_attindex >= (_currentnode.Attributes.Count - 1))
+            {
+                InternalTrace(">false");
+                return false;
+            }
+            _attindex++;
+            InternalTrace(">true");
+            return true;
+        }
+
+        /// <summary>
+        /// Moves the XPathNavigator to the next namespace node.
+        /// Always returns falsefor the HtmlNavigator implementation.
+        /// </summary>
+        /// <param name="scope">An XPathNamespaceScope value describing the namespace scope.</param>
+        /// <returns>Always returns false for the HtmlNavigator implementation.</returns>
+        public override bool MoveToNextNamespace(XPathNamespaceScope scope)
+        {
+            InternalTrace(null);
+            return false;
+        }
+
+        /// <summary>
+        /// Moves to the parent of the current node.
+        /// </summary>
+        /// <returns>true if there is a parent node, otherwise false.</returns>
+        public override bool MoveToParent()
+        {
+            if (_currentnode.ParentNode == null)
+            {
+                InternalTrace(">false");
+                return false;
+            }
+            _currentnode = _currentnode.ParentNode;
+            InternalTrace(">true");
+            return true;
+        }
+
+        /// <summary>
+        /// Moves to the previous sibling of the current node.
+        /// </summary>
+        /// <returns>true if the navigator is successful moving to the previous sibling node, false if there is no previous sibling or if the navigator is currently positioned on an attribute node.</returns>
+        public override bool MoveToPrevious()
+        {
+            if (_currentnode.PreviousSibling == null)
+            {
+                InternalTrace(">false");
+                return false;
+            }
+            _currentnode = _currentnode.PreviousSibling;
+            InternalTrace(">true");
+            return true;
+        }
+
+        /// <summary>
+        /// Moves to the root node to which the current node belongs.
+        /// </summary>
+        public override void MoveToRoot()
+        {
+            _currentnode = _doc.DocumentNode;
+            InternalTrace(null);
+        }
+
+        #endregion
+
+        #region Internal Methods
+
+        [Conditional("TRACE")]
+        internal void InternalTrace(object traceValue)
+        {
+            if (!Trace)
+            {
+                return;
+            }
+            StackFrame sf = new StackFrame(1, true);
+            string name = sf.GetMethod().Name;
+            string nodename = _currentnode == null ? "(null)" : _currentnode.Name;
+            string nodevalue;
+            if (_currentnode == null)
+            {
+                nodevalue = "(null)";
+            }
+            else
+            {
+                switch (_currentnode.NodeType)
+                {
+                    case HtmlNodeType.Comment:
+                        nodevalue = ((HtmlCommentNode) _currentnode).Comment;
+                        break;
+
+                    case HtmlNodeType.Document:
+                        nodevalue = "";
+                        break;
+
+                    case HtmlNodeType.Text:
+                        nodevalue = ((HtmlTextNode) _currentnode).Text;
+                        break;
+
+                    default:
+                        nodevalue = _currentnode.CloneNode(false).OuterHtml;
+                        break;
+                }
+            }
+            System.Diagnostics.Trace.WriteLine(string.Format("oid={0},n={1},a={2},v={3},{4}", GetHashCode(), nodename, _attindex, nodevalue, traceValue), "N!" + name);
+        }
+
+        #endregion
+
+        #region Private Methods
+
+        private void Reset()
+        {
+            InternalTrace(null);
+            _currentnode = _doc.DocumentNode;
+            _attindex = -1;
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/HtmlNodeType.cs b/docs/HtmlAgilityPack/HtmlNodeType.cs
new file mode 100644
index 0000000..a84e4af
--- /dev/null
+++ b/docs/HtmlAgilityPack/HtmlNodeType.cs
@@ -0,0 +1,29 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// Represents the type of a node.
+    /// </summary>
+    public enum HtmlNodeType
+    {
+        /// <summary>
+        /// The root of a document.
+        /// </summary>
+        Document,
+
+        /// <summary>
+        /// An HTML element.
+        /// </summary>
+        Element,
+
+        /// <summary>
+        /// An HTML comment.
+        /// </summary>
+        Comment,
+
+        /// <summary>
+        /// A text node is always the child of an element or a document node.
+        /// </summary>
+        Text,
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/HtmlParseError.cs b/docs/HtmlAgilityPack/HtmlParseError.cs
new file mode 100644
index 0000000..d3d5e78
--- /dev/null
+++ b/docs/HtmlAgilityPack/HtmlParseError.cs
@@ -0,0 +1,92 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// Represents a parsing error found during document parsing.
+    /// </summary>
+    public class HtmlParseError
+    {
+        #region Fields
+
+        private HtmlParseErrorCode _code;
+        private int _line;
+        private int _linePosition;
+        private string _reason;
+        private string _sourceText;
+        private int _streamPosition;
+
+        #endregion
+
+        #region Constructors
+
+        internal HtmlParseError(
+            HtmlParseErrorCode code,
+            int line,
+            int linePosition,
+            int streamPosition,
+            string sourceText,
+            string reason)
+        {
+            _code = code;
+            _line = line;
+            _linePosition = linePosition;
+            _streamPosition = streamPosition;
+            _sourceText = sourceText;
+            _reason = reason;
+        }
+
+        #endregion
+
+        #region Properties
+
+        /// <summary>
+        /// Gets the type of error.
+        /// </summary>
+        public HtmlParseErrorCode Code
+        {
+            get { return _code; }
+        }
+
+        /// <summary>
+        /// Gets the line number of this error in the document.
+        /// </summary>
+        public int Line
+        {
+            get { return _line; }
+        }
+
+        /// <summary>
+        /// Gets the column number of this error in the document.
+        /// </summary>
+        public int LinePosition
+        {
+            get { return _linePosition; }
+        }
+
+        /// <summary>
+        /// Gets a description for the error.
+        /// </summary>
+        public string Reason
+        {
+            get { return _reason; }
+        }
+
+        /// <summary>
+        /// Gets the the full text of the line containing the error.
+        /// </summary>
+        public string SourceText
+        {
+            get { return _sourceText; }
+        }
+
+        /// <summary>
+        /// Gets the absolute stream position of this error in the document, relative to the start of the document.
+        /// </summary>
+        public int StreamPosition
+        {
+            get { return _streamPosition; }
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/HtmlParseErrorCode.cs b/docs/HtmlAgilityPack/HtmlParseErrorCode.cs
new file mode 100644
index 0000000..f92128d
--- /dev/null
+++ b/docs/HtmlAgilityPack/HtmlParseErrorCode.cs
@@ -0,0 +1,34 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// Represents the type of parsing error.
+    /// </summary>
+    public enum HtmlParseErrorCode
+    {
+        /// <summary>
+        /// A tag was not closed.
+        /// </summary>
+        TagNotClosed,
+
+        /// <summary>
+        /// A tag was not opened.
+        /// </summary>
+        TagNotOpened,
+
+        /// <summary>
+        /// There is a charset mismatch between stream and declared (META) encoding.
+        /// </summary>
+        CharsetMismatch,
+
+        /// <summary>
+        /// An end tag was not required.
+        /// </summary>
+        EndTagNotRequired,
+
+        /// <summary>
+        /// An end tag is invalid at this position.
+        /// </summary>
+        EndTagInvalidHere
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/HtmlTextNode.cs b/docs/HtmlAgilityPack/HtmlTextNode.cs
new file mode 100644
index 0000000..cdf8bce
--- /dev/null
+++ b/docs/HtmlAgilityPack/HtmlTextNode.cs
@@ -0,0 +1,69 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// Represents an HTML text node.
+    /// </summary>
+    public class HtmlTextNode : HtmlNode
+    {
+        #region Fields
+
+        private string _text;
+
+        #endregion
+
+        #region Constructors
+
+        internal HtmlTextNode(HtmlDocument ownerdocument, int index)
+            :
+                base(HtmlNodeType.Text, ownerdocument, index)
+        {
+        }
+
+        #endregion
+
+        #region Properties
+
+        /// <summary>
+        /// Gets or Sets the HTML between the start and end tags of the object. In the case of a text node, it is equals to OuterHtml.
+        /// </summary>
+        public override string InnerHtml
+        {
+            get { return OuterHtml; }
+            set { _text = value; }
+        }
+
+        /// <summary>
+        /// Gets or Sets the object and its content in HTML.
+        /// </summary>
+        public override string OuterHtml
+        {
+            get
+            {
+                if (_text == null)
+                {
+                    return base.OuterHtml;
+                }
+                return _text;
+            }
+        }
+
+        /// <summary>
+        /// Gets or Sets the text of the node.
+        /// </summary>
+        public string Text
+        {
+            get
+            {
+                if (_text == null)
+                {
+                    return base.OuterHtml;
+                }
+                return _text;
+            }
+            set { _text = value; }
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/HtmlWeb.cs b/docs/HtmlAgilityPack/HtmlWeb.cs
new file mode 100644
index 0000000..39dd426
--- /dev/null
+++ b/docs/HtmlAgilityPack/HtmlWeb.cs
@@ -0,0 +1,907 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+using System;
+using System.IO;
+using System.Net;
+using System.Text;
+using System.Xml;
+using System.Xml.Serialization;
+using System.Xml.Xsl;
+using Microsoft.Win32;
+
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// A utility class to get HTML document from HTTP.
+    /// </summary>
+    public class HtmlWeb
+    {
+        #region Delegates
+
+        /// <summary>
+        /// Represents the method that will handle the PostResponse event.
+        /// </summary>
+        public delegate void PostResponseHandler(HttpWebRequest request, HttpWebResponse response);
+
+        /// <summary>
+        /// Represents the method that will handle the PreHandleDocument event.
+        /// </summary>
+        public delegate void PreHandleDocumentHandler(HtmlDocument document);
+
+        /// <summary>
+        /// Represents the method that will handle the PreRequest event.
+        /// </summary>
+        public delegate bool PreRequestHandler(HttpWebRequest request);
+
+        #endregion
+
+        #region Fields
+
+        private bool _autoDetectEncoding = true;
+        private bool _cacheOnly;
+
+        private string _cachePath;
+        private bool _fromCache;
+        private int _requestDuration;
+        private Uri _responseUri;
+        private HttpStatusCode _statusCode = HttpStatusCode.OK;
+        private int _streamBufferSize = 1024;
+        private bool _useCookies;
+        private bool _usingCache;
+
+        /// <summary>
+        /// Occurs after an HTTP request has been executed.
+        /// </summary>
+        public PostResponseHandler PostResponse;
+
+        /// <summary>
+        /// Occurs before an HTML document is handled.
+        /// </summary>
+        public PreHandleDocumentHandler PreHandleDocument;
+
+        /// <summary>
+        /// Occurs before an HTTP request is executed.
+        /// </summary>
+        public PreRequestHandler PreRequest;
+
+        #endregion
+
+        #region Properties
+
+        /// <summary>
+        /// Gets or Sets a value indicating if document encoding must be automatically detected.
+        /// </summary>
+        public bool AutoDetectEncoding
+        {
+            get { return _autoDetectEncoding; }
+            set { _autoDetectEncoding = value; }
+        }
+
+        /// <summary>
+        /// Gets or Sets a value indicating whether to get document only from the cache.
+        /// If this is set to true and document is not found in the cache, nothing will be loaded.
+        /// </summary>
+        public bool CacheOnly
+        {
+            get { return _cacheOnly; }
+            set
+            {
+                if ((value) && !UsingCache)
+                {
+                    throw new HtmlWebException("Cache is not enabled. Set UsingCache to true first.");
+                }
+                _cacheOnly = value;
+            }
+        }
+
+        /// <summary>
+        /// Gets or Sets the cache path. If null, no caching mechanism will be used.
+        /// </summary>
+        public string CachePath
+        {
+            get { return _cachePath; }
+            set { _cachePath = value; }
+        }
+
+        /// <summary>
+        /// Gets a value indicating if the last document was retrieved from the cache.
+        /// </summary>
+        public bool FromCache
+        {
+            get { return _fromCache; }
+        }
+
+        /// <summary>
+        /// Gets the last request duration in milliseconds.
+        /// </summary>
+        public int RequestDuration
+        {
+            get { return _requestDuration; }
+        }
+
+        /// <summary>
+        /// Gets the URI of the Internet resource that actually responded to the request.
+        /// </summary>
+        public Uri ResponseUri
+        {
+            get { return _responseUri; }
+        }
+
+        /// <summary>
+        /// Gets the last request status.
+        /// </summary>
+        public HttpStatusCode StatusCode
+        {
+            get { return _statusCode; }
+        }
+
+        /// <summary>
+        /// Gets or Sets the size of the buffer used for memory operations.
+        /// </summary>
+        public int StreamBufferSize
+        {
+            get { return _streamBufferSize; }
+            set
+            {
+                if (_streamBufferSize <= 0)
+                {
+                    throw new ArgumentException("Size must be greater than zero.");
+                }
+                _streamBufferSize = value;
+            }
+        }
+
+        /// <summary>
+        /// Gets or Sets a value indicating if cookies will be stored.
+        /// </summary>
+        public bool UseCookies
+        {
+            get { return _useCookies; }
+            set { _useCookies = value; }
+        }
+
+        /// <summary>
+        /// Gets or Sets a value indicating whether the caching mechanisms should be used or not.
+        /// </summary>
+        public bool UsingCache
+        {
+            get
+            {
+                if (_cachePath == null)
+                {
+                    return false;
+                }
+                return _usingCache;
+            }
+            set
+            {
+                if ((value) && (_cachePath == null))
+                {
+                    throw new HtmlWebException("You need to define a CachePath first.");
+                }
+                _usingCache = value;
+            }
+        }
+
+        #endregion
+
+        #region Public Methods
+
+        /// <summary>
+        /// Gets the MIME content type for a given path extension.
+        /// </summary>
+        /// <param name="extension">The input path extension.</param>
+        /// <param name="def">The default content type to return if any error occurs.</param>
+        /// <returns>The path extension's MIME content type.</returns>
+        public static string GetContentTypeForExtension(string extension, string def)
+        {
+            if (string.IsNullOrEmpty(extension))
+            {
+                return def;
+            }
+            string contentType = "";
+            try
+            {
+                RegistryKey reg = Registry.ClassesRoot;
+                reg = reg.OpenSubKey(extension, false);
+                if (reg != null) contentType = (string)reg.GetValue("", def);
+            }
+            catch (Exception)
+            {
+                contentType = def;
+            }
+            return contentType;
+        }
+
+        /// <summary>
+        /// Gets the path extension for a given MIME content type.
+        /// </summary>
+        /// <param name="contentType">The input MIME content type.</param>
+        /// <param name="def">The default path extension to return if any error occurs.</param>
+        /// <returns>The MIME content type's path extension.</returns>
+        public static string GetExtensionForContentType(string contentType, string def)
+        {
+            if (string.IsNullOrEmpty(contentType))
+            {
+                return def;
+            }
+            string ext = "";
+            try
+            {
+                RegistryKey reg = Registry.ClassesRoot;
+                reg = reg.OpenSubKey(@"MIME\Database\Content Type\" + contentType, false);
+                if (reg != null) ext = (string)reg.GetValue("Extension", def);
+            }
+            catch (Exception)
+            {
+                ext = def;
+            }
+            return ext;
+        }
+
+        /// <summary>
+        /// Creates an instance of the given type from the specified Internet resource.
+        /// </summary>
+        /// <param name="url">The requested URL, such as "http://Myserver/Mypath/Myfile.asp".</param>
+        /// <param name="type">The requested type.</param>
+        /// <returns>An newly created instance.</returns>
+        public object CreateInstance(string url, Type type)
+        {
+            return CreateInstance(url, null, null, type);
+        }
+
+        /// <summary>
+        /// Creates an instance of the given type from the specified Internet resource.
+        /// </summary>
+        /// <param name="htmlUrl">The requested URL, such as "http://Myserver/Mypath/Myfile.asp".</param>
+        /// <param name="xsltUrl">The URL that specifies the XSLT stylesheet to load.</param>
+        /// <param name="xsltArgs">An <see cref="XsltArgumentList"/> containing the namespace-qualified arguments used as input to the transform.</param>
+        /// <param name="type">The requested type.</param>
+        /// <returns>An newly created instance.</returns>
+        public object CreateInstance(string htmlUrl, string xsltUrl, XsltArgumentList xsltArgs, Type type)
+        {
+            return CreateInstance(htmlUrl, xsltUrl, xsltArgs, type, null);
+        }
+
+        /// <summary>
+        /// Creates an instance of the given type from the specified Internet resource.
+        /// </summary>
+        /// <param name="htmlUrl">The requested URL, such as "http://Myserver/Mypath/Myfile.asp".</param>
+        /// <param name="xsltUrl">The URL that specifies the XSLT stylesheet to load.</param>
+        /// <param name="xsltArgs">An <see cref="XsltArgumentList"/> containing the namespace-qualified arguments used as input to the transform.</param>
+        /// <param name="type">The requested type.</param>
+        /// <param name="xmlPath">A file path where the temporary XML before transformation will be saved. Mostly used for debugging purposes.</param>
+        /// <returns>An newly created instance.</returns>
+        public object CreateInstance(string htmlUrl, string xsltUrl, XsltArgumentList xsltArgs, Type type,
+                                     string xmlPath)
+        {
+            StringWriter sw = new StringWriter();
+            XmlTextWriter writer = new XmlTextWriter(sw);
+            if (xsltUrl == null)
+            {
+                LoadHtmlAsXml(htmlUrl, writer);
+            }
+            else
+            {
+                if (xmlPath == null)
+                {
+                    LoadHtmlAsXml(htmlUrl, xsltUrl, xsltArgs, writer);
+                }
+                else
+                {
+                    LoadHtmlAsXml(htmlUrl, xsltUrl, xsltArgs, writer, xmlPath);
+                }
+            }
+            writer.Flush();
+            StringReader sr = new StringReader(sw.ToString());
+            XmlTextReader reader = new XmlTextReader(sr);
+            XmlSerializer serializer = new XmlSerializer(type);
+            object o;
+            try
+            {
+                o = serializer.Deserialize(reader);
+            }
+            catch (InvalidOperationException ex)
+            {
+                throw new Exception(ex + ", --- xml:" + sw);
+            }
+            return o;
+        }
+
+        /// <summary>
+        /// Gets an HTML document from an Internet resource and saves it to the specified file.
+        /// </summary>
+        /// <param name="url">The requested URL, such as "http://Myserver/Mypath/Myfile.asp".</param>
+        /// <param name="path">The location of the file where you want to save the document.</param>
+        public void Get(string url, string path)
+        {
+            Get(url, path, "GET");
+        }
+
+        /// <summary>
+        /// Gets an HTML document from an Internet resource and saves it to the specified file. - Proxy aware
+        /// </summary>
+        /// <param name="url">The requested URL, such as "http://Myserver/Mypath/Myfile.asp".</param>
+        /// <param name="path">The location of the file where you want to save the document.</param>
+        /// <param name="proxy"></param>
+        /// <param name="credentials"></param>
+        public void Get(string url, string path, WebProxy proxy, NetworkCredential credentials)
+        {
+            Get(url, path, proxy, credentials, "GET");
+        }
+
+        /// <summary>
+        /// Gets an HTML document from an Internet resource and saves it to the specified file.
+        /// </summary>
+        /// <param name="url">The requested URL, such as "http://Myserver/Mypath/Myfile.asp".</param>
+        /// <param name="path">The location of the file where you want to save the document.</param>
+        /// <param name="method">The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND.</param>
+        public void Get(string url, string path, string method)
+        {
+            Uri uri = new Uri(url);
+            if ((uri.Scheme == Uri.UriSchemeHttps) ||
+                (uri.Scheme == Uri.UriSchemeHttp))
+            {
+                Get(uri, method, path, null, null, null);
+            }
+            else
+            {
+                throw new HtmlWebException("Unsupported uri scheme: '" + uri.Scheme + "'.");
+            }
+        }
+
+        /// <summary>
+        /// Gets an HTML document from an Internet resource and saves it to the specified file.  Understands Proxies
+        /// </summary>
+        /// <param name="url">The requested URL, such as "http://Myserver/Mypath/Myfile.asp".</param>
+        /// <param name="path">The location of the file where you want to save the document.</param>
+        /// <param name="credentials"></param>
+        /// <param name="method">The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND.</param>
+        /// <param name="proxy"></param>
+        public void Get(string url, string path, WebProxy proxy, NetworkCredential credentials, string method)
+        {
+            Uri uri = new Uri(url);
+            if ((uri.Scheme == Uri.UriSchemeHttps) ||
+                (uri.Scheme == Uri.UriSchemeHttp))
+            {
+                Get(uri, method, path, null, proxy, credentials);
+            }
+            else
+            {
+                throw new HtmlWebException("Unsupported uri scheme: '" + uri.Scheme + "'.");
+            }
+        }
+
+        /// <summary>
+        /// Gets the cache file path for a specified url.
+        /// </summary>
+        /// <param name="uri">The url fo which to retrieve the cache path. May not be null.</param>
+        /// <returns>The cache file path.</returns>
+        public string GetCachePath(Uri uri)
+        {
+            if (uri == null)
+            {
+                throw new ArgumentNullException("uri");
+            }
+            if (!UsingCache)
+            {
+                throw new HtmlWebException("Cache is not enabled. Set UsingCache to true first.");
+            }
+            string cachePath;
+            if (uri.AbsolutePath == "/")
+            {
+                cachePath = Path.Combine(_cachePath, ".htm");
+            }
+            else
+            {
+                cachePath = Path.Combine(_cachePath, (uri.Host + uri.AbsolutePath).Replace('/', '\\'));
+            }
+            return cachePath;
+        }
+
+        /// <summary>
+        /// Gets an HTML document from an Internet resource.
+        /// </summary>
+        /// <param name="url">The requested URL, such as "http://Myserver/Mypath/Myfile.asp".</param>
+        /// <returns>A new HTML document.</returns>
+        public HtmlDocument Load(string url)
+        {
+            return Load(url, "GET");
+        }
+
+        /// <summary>
+        /// Gets an HTML document from an Internet resource.
+        /// </summary>
+        /// <param name="url">The requested URL, such as "http://Myserver/Mypath/Myfile.asp".</param>
+        /// <param name="proxyHost">Host to use for Proxy</param>
+        /// <param name="proxyPort">Port the Proxy is on</param>
+        /// <param name="userId">User Id for Authentication</param>
+        /// <param name="password">Password for Authentication</param>
+        /// <returns>A new HTML document.</returns>
+        public HtmlDocument Load(string url, string proxyHost, int proxyPort, string userId, string password)
+        {
+            //Create my proxy
+            WebProxy myProxy = new WebProxy(proxyHost, proxyPort);
+            myProxy.BypassProxyOnLocal = true;
+
+            //Create my credentials
+            NetworkCredential myCreds = null;
+            if ((userId != null) && (password != null))
+            {
+                myCreds = new NetworkCredential(userId, password);
+                CredentialCache credCache = new CredentialCache();
+                //Add the creds
+                credCache.Add(myProxy.Address, "Basic", myCreds);
+                credCache.Add(myProxy.Address, "Digest", myCreds);
+            }
+
+            return Load(url, "GET", myProxy, myCreds);
+        }
+
+        /// <summary>
+        /// Loads an HTML document from an Internet resource.
+        /// </summary>
+        /// <param name="url">The requested URL, such as "http://Myserver/Mypath/Myfile.asp".</param>
+        /// <param name="method">The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND.</param>
+        /// <returns>A new HTML document.</returns>
+        public HtmlDocument Load(string url, string method)
+        {
+            Uri uri = new Uri(url);
+            HtmlDocument doc;
+            if ((uri.Scheme == Uri.UriSchemeHttps) ||
+                (uri.Scheme == Uri.UriSchemeHttp))
+            {
+                doc = LoadUrl(uri, method, null, null);
+            }
+            else
+            {
+                if (uri.Scheme == Uri.UriSchemeFile)
+                {
+                    doc = new HtmlDocument();
+                    doc.OptionAutoCloseOnEnd = false;
+                    doc.OptionAutoCloseOnEnd = true;
+                    doc.DetectEncodingAndLoad(url, _autoDetectEncoding);
+                }
+                else
+                {
+                    throw new HtmlWebException("Unsupported uri scheme: '" + uri.Scheme + "'.");
+                }
+            }
+            if (PreHandleDocument != null)
+            {
+                PreHandleDocument(doc);
+            }
+            return doc;
+        }
+
+        /// <summary>
+        /// Loads an HTML document from an Internet resource.
+        /// </summary>
+        /// <param name="url">The requested URL, such as "http://Myserver/Mypath/Myfile.asp".</param>
+        /// <param name="method">The HTTP method used to open the connection, such as GET, POST, PUT, or PROPFIND.</param>
+        /// <param name="proxy">Proxy to use with this request</param>
+        /// <param name="credentials">Credentials to use when authenticating</param>
+        /// <returns>A new HTML document.</returns>
+        public HtmlDocument Load(string url, string method, WebProxy proxy, NetworkCredential credentials)
+        {
+            Uri uri = new Uri(url);
+            HtmlDocument doc;
+            if ((uri.Scheme == Uri.UriSchemeHttps) ||
+                (uri.Scheme == Uri.UriSchemeHttp))
+            {
+                doc = LoadUrl(uri, method, proxy, credentials);
+            }
+            else
+            {
+                if (uri.Scheme == Uri.UriSchemeFile)
+                {
+                    doc = new HtmlDocument();
+                    doc.OptionAutoCloseOnEnd = false;
+                    doc.OptionAutoCloseOnEnd = true;
+                    doc.DetectEncodingAndLoad(url, _autoDetectEncoding);
+                }
+                else
+                {
+                    throw new HtmlWebException("Unsupported uri scheme: '" + uri.Scheme + "'.");
+                }
+            }
+            if (PreHandleDocument != null)
+            {
+                PreHandleDocument(doc);
+            }
+            return doc;
+        }
+
+        /// <summary>
+        /// Loads an HTML document from an Internet resource and saves it to the specified XmlTextWriter.
+        /// </summary>
+        /// <param name="htmlUrl">The requested URL, such as "http://Myserver/Mypath/Myfile.asp".</param>
+        /// <param name="writer">The XmlTextWriter to which you want to save.</param>
+        public void LoadHtmlAsXml(string htmlUrl, XmlTextWriter writer)
+        {
+            HtmlDocument doc = Load(htmlUrl);
+            doc.Save(writer);
+        }
+
+        /// <summary>
+        /// Loads an HTML document from an Internet resource and saves it to the specified XmlTextWriter, after an XSLT transformation.
+        /// </summary>
+        /// <param name="htmlUrl">The requested URL, such as "http://Myserver/Mypath/Myfile.asp".</param>
+        /// <param name="xsltUrl">The URL that specifies the XSLT stylesheet to load.</param>
+        /// <param name="xsltArgs">An XsltArgumentList containing the namespace-qualified arguments used as input to the transform.</param>
+        /// <param name="writer">The XmlTextWriter to which you want to save.</param>
+        public void LoadHtmlAsXml(string htmlUrl, string xsltUrl, XsltArgumentList xsltArgs, XmlTextWriter writer)
+        {
+            LoadHtmlAsXml(htmlUrl, xsltUrl, xsltArgs, writer, null);
+        }
+
+        /// <summary>
+        /// Loads an HTML document from an Internet resource and saves it to the specified XmlTextWriter, after an XSLT transformation.
+        /// </summary>
+        /// <param name="htmlUrl">The requested URL, such as "http://Myserver/Mypath/Myfile.asp". May not be null.</param>
+        /// <param name="xsltUrl">The URL that specifies the XSLT stylesheet to load.</param>
+        /// <param name="xsltArgs">An XsltArgumentList containing the namespace-qualified arguments used as input to the transform.</param>
+        /// <param name="writer">The XmlTextWriter to which you want to save.</param>
+        /// <param name="xmlPath">A file path where the temporary XML before transformation will be saved. Mostly used for debugging purposes.</param>
+        public void LoadHtmlAsXml(string htmlUrl, string xsltUrl, XsltArgumentList xsltArgs, XmlTextWriter writer,
+                                  string xmlPath)
+        {
+            if (htmlUrl == null)
+            {
+                throw new ArgumentNullException("htmlUrl");
+            }
+
+            HtmlDocument doc = Load(htmlUrl);
+
+            if (xmlPath != null)
+            {
+                XmlTextWriter w = new XmlTextWriter(xmlPath, doc.Encoding);
+                doc.Save(w);
+                w.Close();
+            }
+            if (xsltArgs == null)
+            {
+                xsltArgs = new XsltArgumentList();
+            }
+
+            // add some useful variables to the xslt doc
+            xsltArgs.AddParam("url", "", htmlUrl);
+            xsltArgs.AddParam("requestDuration", "", RequestDuration);
+            xsltArgs.AddParam("fromCache", "", FromCache);
+
+            XslCompiledTransform xslt = new XslCompiledTransform();
+            xslt.Load(xsltUrl);
+            xslt.Transform(doc, xsltArgs, writer);
+        }
+
+        #endregion
+
+        #region Private Methods
+
+        private static void FilePreparePath(string target)
+        {
+            if (File.Exists(target))
+            {
+                FileAttributes atts = File.GetAttributes(target);
+                File.SetAttributes(target, atts & ~FileAttributes.ReadOnly);
+            }
+            else
+            {
+                string dir = Path.GetDirectoryName(target);
+                if (!Directory.Exists(dir))
+                {
+                    Directory.CreateDirectory(dir);
+                }
+            }
+        }
+
+        private static DateTime RemoveMilliseconds(DateTime t)
+        {
+            return new DateTime(t.Year, t.Month, t.Day, t.Hour, t.Minute, t.Second, 0);
+        }
+
+        // ReSharper disable UnusedMethodReturnValue.Local
+        private static long SaveStream(Stream stream, string path, DateTime touchDate, int streamBufferSize)
+        // ReSharper restore UnusedMethodReturnValue.Local
+        {
+            FilePreparePath(path);
+            FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write);
+            BinaryReader br = null;
+            BinaryWriter bw = null;
+            long len = 0;
+            try
+            {
+                br = new BinaryReader(stream);
+                bw = new BinaryWriter(fs);
+
+                byte[] buffer;
+                do
+                {
+                    buffer = br.ReadBytes(streamBufferSize);
+                    len += buffer.Length;
+                    if (buffer.Length > 0)
+                    {
+                        bw.Write(buffer);
+                    }
+                } while (buffer.Length > 0);
+            }
+            finally
+            {
+                if (br != null)
+                {
+                    br.Close();
+                }
+                if (bw != null)
+                {
+                    bw.Flush();
+                    bw.Close();
+                }
+                if (fs != null)
+                {
+                    fs.Close();
+                }
+            }
+            File.SetLastWriteTime(path, touchDate);
+            return len;
+        }
+
+        private HttpStatusCode Get(Uri uri, string method, string path, HtmlDocument doc, IWebProxy proxy,
+                                   ICredentials creds)
+        {
+            string cachePath = null;
+            HttpWebRequest req;
+            bool oldFile = false;
+
+            req = WebRequest.Create(uri) as HttpWebRequest;
+            req.Method = method;
+
+            if (proxy != null)
+            {
+                if (creds != null)
+                {
+                    proxy.Credentials = creds;
+                    req.Credentials = creds;
+                }
+                else
+                {
+                    proxy.Credentials = CredentialCache.DefaultCredentials;
+                    req.Credentials = CredentialCache.DefaultCredentials;
+                }
+                req.Proxy = proxy;
+            }
+
+            _fromCache = false;
+            _requestDuration = 0;
+            int tc = Environment.TickCount;
+            if (UsingCache)
+            {
+                cachePath = GetCachePath(req.RequestUri);
+                if (File.Exists(cachePath))
+                {
+                    req.IfModifiedSince = File.GetLastAccessTime(cachePath);
+                    oldFile = true;
+                }
+            }
+
+            if (_cacheOnly)
+            {
+                if (!File.Exists(cachePath))
+                {
+                    throw new HtmlWebException("File was not found at cache path: '" + cachePath + "'");
+                }
+
+                if (path != null)
+                {
+                    IOLibrary.CopyAlways(cachePath, path);
+                    // touch the file
+                    File.SetLastWriteTime(path, File.GetLastWriteTime(cachePath));
+                }
+                _fromCache = true;
+                return HttpStatusCode.NotModified;
+            }
+
+            if (_useCookies)
+            {
+                req.CookieContainer = new CookieContainer();
+            }
+
+            if (PreRequest != null)
+            {
+                // allow our user to change the request at will
+                if (!PreRequest(req))
+                {
+                    return HttpStatusCode.ResetContent;
+                }
+
+                // dump cookie
+                //				if (_useCookies)
+                //				{
+                //					foreach(Cookie cookie in req.CookieContainer.GetCookies(req.RequestUri))
+                //					{
+                //						HtmlLibrary.Trace("Cookie " + cookie.Name + "=" + cookie.Value + " path=" + cookie.Path + " domain=" + cookie.Domain);
+                //					}
+                //				}
+            }
+
+            HttpWebResponse resp;
+
+            try
+            {
+                resp = req.GetResponse() as HttpWebResponse;
+            }
+            catch (WebException we)
+            {
+                _requestDuration = Environment.TickCount - tc;
+                resp = (HttpWebResponse)we.Response;
+                if (resp == null)
+                {
+                    if (oldFile)
+                    {
+                        if (path != null)
+                        {
+                            IOLibrary.CopyAlways(cachePath, path);
+                            // touch the file
+                            File.SetLastWriteTime(path, File.GetLastWriteTime(cachePath));
+                        }
+                        return HttpStatusCode.NotModified;
+                    }
+                    throw;
+                }
+            }
+            catch (Exception)
+            {
+                _requestDuration = Environment.TickCount - tc;
+                throw;
+            }
+
+            // allow our user to get some info from the response
+            if (PostResponse != null)
+            {
+                PostResponse(req, resp);
+            }
+
+            _requestDuration = Environment.TickCount - tc;
+            _responseUri = resp.ResponseUri;
+
+            bool html = IsHtmlContent(resp.ContentType);
+            Encoding respenc;
+
+            if ((resp.ContentEncoding != null) && (resp.ContentEncoding.Length > 0))
+            {
+                respenc = Encoding.GetEncoding(resp.ContentEncoding);
+            }
+            else
+            {
+                respenc = null;
+            }
+
+            if (resp.StatusCode == HttpStatusCode.NotModified)
+            {
+                if (UsingCache)
+                {
+                    _fromCache = true;
+                    if (path != null)
+                    {
+                        IOLibrary.CopyAlways(cachePath, path);
+                        // touch the file
+                        File.SetLastWriteTime(path, File.GetLastWriteTime(cachePath));
+                    }
+                    return resp.StatusCode;
+                }
+                else
+                {
+                    // this should *never* happen...
+                    throw new HtmlWebException("Server has send a NotModifed code, without cache enabled.");
+                }
+            }
+            Stream s = resp.GetResponseStream();
+            if (s != null)
+            {
+                if (UsingCache)
+                {
+                    // NOTE: LastModified does not contain milliseconds, so we remove them to the file
+                    SaveStream(s, cachePath, RemoveMilliseconds(resp.LastModified), _streamBufferSize);
+
+                    // save headers
+                    SaveCacheHeaders(req.RequestUri, resp);
+
+                    if (path != null)
+                    {
+                        // copy and touch the file
+                        IOLibrary.CopyAlways(cachePath, path);
+                        File.SetLastWriteTime(path, File.GetLastWriteTime(cachePath));
+                    }
+                }
+                else
+                {
+                    // try to work in-memory
+                    if ((doc != null) && (html))
+                    {
+                        if (respenc != null)
+                        {
+                            doc.Load(s, respenc);
+                        }
+                        else
+                        {
+                            doc.Load(s, true);
+                        }
+                    }
+                }
+                resp.Close();
+            }
+            return resp.StatusCode;
+        }
+
+        private string GetCacheHeader(Uri requestUri, string name, string def)
+        {
+            // note: some headers are collection (ex: www-authenticate)
+            // we don't handle that here
+            XmlDocument doc = new XmlDocument();
+            doc.Load(GetCacheHeadersPath(requestUri));
+            XmlNode node =
+                doc.SelectSingleNode("//h[translate(@n, 'abcdefghijklmnopqrstuvwxyz','ABCDEFGHIJKLMNOPQRSTUVWXYZ')='" +
+                                     name.ToUpper() + "']");
+            if (node == null)
+            {
+                return def;
+            }
+            // attribute should exist
+            return node.Attributes[name].Value;
+        }
+
+        private string GetCacheHeadersPath(Uri uri)
+        {
+            //return Path.Combine(GetCachePath(uri), ".h.xml");
+            return GetCachePath(uri) + ".h.xml";
+        }
+
+        private bool IsCacheHtmlContent(string path)
+        {
+            string ct = GetContentTypeForExtension(Path.GetExtension(path), null);
+            return IsHtmlContent(ct);
+        }
+
+        private bool IsHtmlContent(string contentType)
+        {
+            return contentType.ToLower().StartsWith("text/html");
+        }
+
+        private HtmlDocument LoadUrl(Uri uri, string method, WebProxy proxy, NetworkCredential creds)
+        {
+            HtmlDocument doc = new HtmlDocument();
+            doc.OptionAutoCloseOnEnd = false;
+            doc.OptionFixNestedTags = true;
+            _statusCode = Get(uri, method, null, doc, proxy, creds);
+            if (_statusCode == HttpStatusCode.NotModified)
+            {
+                // read cached encoding
+                doc.DetectEncodingAndLoad(GetCachePath(uri));
+            }
+            return doc;
+        }
+
+        private void SaveCacheHeaders(Uri requestUri, HttpWebResponse resp)
+        {
+            // we cache the original headers aside the cached document.
+            string file = GetCacheHeadersPath(requestUri);
+            XmlDocument doc = new XmlDocument();
+            doc.LoadXml("<c></c>");
+            XmlNode cache = doc.FirstChild;
+            foreach (string header in resp.Headers)
+            {
+                XmlNode entry = doc.CreateElement("h");
+                XmlAttribute att = doc.CreateAttribute("n");
+                att.Value = header;
+                entry.Attributes.Append(att);
+
+                att = doc.CreateAttribute("v");
+                att.Value = resp.Headers[header];
+                entry.Attributes.Append(att);
+
+                cache.AppendChild(entry);
+            }
+            doc.Save(file);
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/HtmlWebException.cs b/docs/HtmlAgilityPack/HtmlWebException.cs
new file mode 100644
index 0000000..6896257
--- /dev/null
+++ b/docs/HtmlAgilityPack/HtmlWebException.cs
@@ -0,0 +1,24 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+using System;
+
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// Represents an exception thrown by the HtmlWeb utility class.
+    /// </summary>
+    public class HtmlWebException : Exception
+    {
+        #region Constructors
+
+        /// <summary>
+        /// Creates an instance of the HtmlWebException.
+        /// </summary>
+        /// <param name="message">The exception's message.</param>
+        public HtmlWebException(string message)
+            : base(message)
+        {
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/IOLibrary.cs b/docs/HtmlAgilityPack/IOLibrary.cs
new file mode 100644
index 0000000..031040d
--- /dev/null
+++ b/docs/HtmlAgilityPack/IOLibrary.cs
@@ -0,0 +1,28 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+using System.IO;
+
+namespace HtmlAgilityPack
+{
+    internal struct IOLibrary
+    {
+        #region Internal Methods
+
+        internal static void CopyAlways(string source, string target)
+        {
+            if (!File.Exists(source))
+                return;
+            Directory.CreateDirectory(Path.GetDirectoryName(target));
+            MakeWritable(target);
+            File.Copy(source, target, true);
+        }
+
+        internal static void MakeWritable(string path)
+        {
+            if (!File.Exists(path))
+                return;
+            File.SetAttributes(path, File.GetAttributes(path) & ~FileAttributes.ReadOnly);
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/LICENSE b/docs/HtmlAgilityPack/LICENSE
new file mode 100644
index 0000000..79629b2
--- /dev/null
+++ b/docs/HtmlAgilityPack/LICENSE
@@ -0,0 +1,27 @@
+Microsoft Permissive License (Ms-PL)
+ 
+	This license governs use of the accompanying software. If you use the software, you accept this license. If you do not accept the license, do not use the software.
+ 
+1. Definitions
+
+	The terms “reproduce,” “reproduction,” “derivative works,” and “distribution” have the same meaning here as under U.S. copyright law.
+	A “contribution” is the original software, or any additions or changes to the software.
+	A “contributor” is any person that distributes its contribution under this license.
+	 “Licensed patents” are a contributor’s patent claims that read directly on its contribution.
+ 
+2. Grant of Rights
+
+	(A) Copyright Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free copyright license to reproduce its contribution, prepare derivative works of its contribution, and distribute its contribution or any derivative works that you create.
+	(B) Patent Grant- Subject to the terms of this license, including the license conditions and limitations in section 3, each contributor grants you a non-exclusive, worldwide, royalty-free license under its licensed patents to make, have made, use, sell, offer for sale, import, and/or otherwise dispose of its contribution in the software or derivative works of the contribution in the software.
+ 
+3. Conditions and Limitations
+
+	(A) No Trademark License- This license does not grant you rights to use any contributors’ name, logo, or trademarks.
+	(B) If you bring a patent claim against any contributor over patents that you claim are infringed by the software, your patent license from such contributor to the software ends automatically.
+	(C) If you distribute any portion of the software, you must retain all copyright, patent, trademark, and attribution notices that are present in the software.
+	(D) If you distribute any portion of the software in source code form, you may do so only under this license by including a complete copy of this license with your distribution. If you distribute any portion of the software in compiled or object code form, you may only do so under a license that complies with this license.
+	(E) The software is licensed “as-is.” You bear the risk of using it. The contributors give no express warranties, guarantees or conditions. You may have additional consumer rights under your local laws which this license cannot change. To the extent permitted under your local laws, the contributors exclude the implied warranties of merchantability, fitness for a particular purpose and non-infringement.
+	(F) If you distribute the software or derivative works with programs you develop, you agree to indemnify, defend, and hold harmless all contributors from any claims, including attorneys’ fees, related to the distribution or use of your programs.  For clarity, you have no such obligations to a contributor for any claims based solely on the unmodified contributions of that contributor.
+	(G) If you make any additions or changes to the original software, you may only distribute them under a new namespace.  In addition, you will clearly identify your changes or additions as your own.
+
+
diff --git a/docs/HtmlAgilityPack/MixedCodeDocument.cs b/docs/HtmlAgilityPack/MixedCodeDocument.cs
new file mode 100644
index 0000000..f12ac45
--- /dev/null
+++ b/docs/HtmlAgilityPack/MixedCodeDocument.cs
@@ -0,0 +1,453 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+using System;
+using System.IO;
+using System.Text;
+
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// Represents a document with mixed code and text. ASP, ASPX, JSP, are good example of such documents.
+    /// </summary>
+    public class MixedCodeDocument
+    {
+        #region Fields
+
+        private int _c;
+        internal MixedCodeDocumentFragmentList _codefragments;
+        private MixedCodeDocumentFragment _currentfragment;
+        internal MixedCodeDocumentFragmentList _fragments;
+        private int _index;
+        private int _line;
+        private int _lineposition;
+        private ParseState _state;
+        private Encoding _streamencoding;
+        internal string _text;
+        internal MixedCodeDocumentFragmentList _textfragments;
+
+        /// <summary>
+        /// Gets or sets the token representing code end.
+        /// </summary>
+        public string TokenCodeEnd = "%>";
+
+        /// <summary>
+        /// Gets or sets the token representing code start.
+        /// </summary>
+        public string TokenCodeStart = "<%";
+
+        /// <summary>
+        /// Gets or sets the token representing code directive.
+        /// </summary>
+        public string TokenDirective = "@";
+
+        /// <summary>
+        /// Gets or sets the token representing response write directive.
+        /// </summary>
+        public string TokenResponseWrite = "Response.Write ";
+
+
+        private string TokenTextBlock = "TextBlock({0})";
+
+        #endregion
+
+        #region Constructors
+
+        /// <summary>
+        /// Creates a mixed code document instance.
+        /// </summary>
+        public MixedCodeDocument()
+        {
+            _codefragments = new MixedCodeDocumentFragmentList(this);
+            _textfragments = new MixedCodeDocumentFragmentList(this);
+            _fragments = new MixedCodeDocumentFragmentList(this);
+        }
+
+        #endregion
+
+        #region Properties
+
+        /// <summary>
+        /// Gets the code represented by the mixed code document seen as a template.
+        /// </summary>
+        public string Code
+        {
+            get
+            {
+                string s = "";
+                int i = 0;
+                foreach (MixedCodeDocumentFragment frag in _fragments)
+                {
+                    switch (frag._type)
+                    {
+                        case MixedCodeDocumentFragmentType.Text:
+                            s += TokenResponseWrite + string.Format(TokenTextBlock, i) + "\n";
+                            i++;
+                            break;
+
+                        case MixedCodeDocumentFragmentType.Code:
+                            s += ((MixedCodeDocumentCodeFragment) frag).Code + "\n";
+                            break;
+                    }
+                }
+                return s;
+            }
+        }
+
+        /// <summary>
+        /// Gets the list of code fragments in the document.
+        /// </summary>
+        public MixedCodeDocumentFragmentList CodeFragments
+        {
+            get { return _codefragments; }
+        }
+
+        /// <summary>
+        /// Gets the list of all fragments in the document.
+        /// </summary>
+        public MixedCodeDocumentFragmentList Fragments
+        {
+            get { return _fragments; }
+        }
+
+        /// <summary>
+        /// Gets the encoding of the stream used to read the document.
+        /// </summary>
+        public Encoding StreamEncoding
+        {
+            get { return _streamencoding; }
+        }
+
+        /// <summary>
+        /// Gets the list of text fragments in the document.
+        /// </summary>
+        public MixedCodeDocumentFragmentList TextFragments
+        {
+            get { return _textfragments; }
+        }
+
+        #endregion
+
+        #region Public Methods
+
+        /// <summary>
+        /// Create a code fragment instances.
+        /// </summary>
+        /// <returns>The newly created code fragment instance.</returns>
+        public MixedCodeDocumentCodeFragment CreateCodeFragment()
+        {
+            return (MixedCodeDocumentCodeFragment) CreateFragment(MixedCodeDocumentFragmentType.Code);
+        }
+
+        /// <summary>
+        /// Create a text fragment instances.
+        /// </summary>
+        /// <returns>The newly created text fragment instance.</returns>
+        public MixedCodeDocumentTextFragment CreateTextFragment()
+        {
+            return (MixedCodeDocumentTextFragment) CreateFragment(MixedCodeDocumentFragmentType.Text);
+        }
+
+        /// <summary>
+        /// Loads a mixed code document from a stream.
+        /// </summary>
+        /// <param name="stream">The input stream.</param>
+        public void Load(Stream stream)
+        {
+            Load(new StreamReader(stream));
+        }
+
+        /// <summary>
+        /// Loads a mixed code document from a stream.
+        /// </summary>
+        /// <param name="stream">The input stream.</param>
+        /// <param name="detectEncodingFromByteOrderMarks">Indicates whether to look for byte order marks at the beginning of the file.</param>
+        public void Load(Stream stream, bool detectEncodingFromByteOrderMarks)
+        {
+            Load(new StreamReader(stream, detectEncodingFromByteOrderMarks));
+        }
+
+        /// <summary>
+        /// Loads a mixed code document from a stream.
+        /// </summary>
+        /// <param name="stream">The input stream.</param>
+        /// <param name="encoding">The character encoding to use.</param>
+        public void Load(Stream stream, Encoding encoding)
+        {
+            Load(new StreamReader(stream, encoding));
+        }
+
+        /// <summary>
+        /// Loads a mixed code document from a stream.
+        /// </summary>
+        /// <param name="stream">The input stream.</param>
+        /// <param name="encoding">The character encoding to use.</param>
+        /// <param name="detectEncodingFromByteOrderMarks">Indicates whether to look for byte order marks at the beginning of the file.</param>
+        public void Load(Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks)
+        {
+            Load(new StreamReader(stream, encoding, detectEncodingFromByteOrderMarks));
+        }
+
+        /// <summary>
+        /// Loads a mixed code document from a stream.
+        /// </summary>
+        /// <param name="stream">The input stream.</param>
+        /// <param name="encoding">The character encoding to use.</param>
+        /// <param name="detectEncodingFromByteOrderMarks">Indicates whether to look for byte order marks at the beginning of the file.</param>
+        /// <param name="buffersize">The minimum buffer size.</param>
+        public void Load(Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks, int buffersize)
+        {
+            Load(new StreamReader(stream, encoding, detectEncodingFromByteOrderMarks, buffersize));
+        }
+
+        /// <summary>
+        /// Loads a mixed code document from a file.
+        /// </summary>
+        /// <param name="path">The complete file path to be read.</param>
+        public void Load(string path)
+        {
+            Load(new StreamReader(path));
+        }
+
+        /// <summary>
+        /// Loads a mixed code document from a file.
+        /// </summary>
+        /// <param name="path">The complete file path to be read.</param>
+        /// <param name="detectEncodingFromByteOrderMarks">Indicates whether to look for byte order marks at the beginning of the file.</param>
+        public void Load(string path, bool detectEncodingFromByteOrderMarks)
+        {
+            Load(new StreamReader(path, detectEncodingFromByteOrderMarks));
+        }
+
+        /// <summary>
+        /// Loads a mixed code document from a file.
+        /// </summary>
+        /// <param name="path">The complete file path to be read.</param>
+        /// <param name="encoding">The character encoding to use.</param>
+        public void Load(string path, Encoding encoding)
+        {
+            Load(new StreamReader(path, encoding));
+        }
+
+        /// <summary>
+        /// Loads a mixed code document from a file.
+        /// </summary>
+        /// <param name="path">The complete file path to be read.</param>
+        /// <param name="encoding">The character encoding to use.</param>
+        /// <param name="detectEncodingFromByteOrderMarks">Indicates whether to look for byte order marks at the beginning of the file.</param>
+        public void Load(string path, Encoding encoding, bool detectEncodingFromByteOrderMarks)
+        {
+            Load(new StreamReader(path, encoding, detectEncodingFromByteOrderMarks));
+        }
+
+        /// <summary>
+        /// Loads a mixed code document from a file.
+        /// </summary>
+        /// <param name="path">The complete file path to be read.</param>
+        /// <param name="encoding">The character encoding to use.</param>
+        /// <param name="detectEncodingFromByteOrderMarks">Indicates whether to look for byte order marks at the beginning of the file.</param>
+        /// <param name="buffersize">The minimum buffer size.</param>
+        public void Load(string path, Encoding encoding, bool detectEncodingFromByteOrderMarks, int buffersize)
+        {
+            Load(new StreamReader(path, encoding, detectEncodingFromByteOrderMarks, buffersize));
+        }
+
+        /// <summary>
+        /// Loads the mixed code document from the specified TextReader.
+        /// </summary>
+        /// <param name="reader">The TextReader used to feed the HTML data into the document.</param>
+        public void Load(TextReader reader)
+        {
+            _codefragments.Clear();
+            _textfragments.Clear();
+
+            // all pseudo constructors get down to this one
+            StreamReader sr = reader as StreamReader;
+            if (sr != null)
+            {
+                _streamencoding = sr.CurrentEncoding;
+            }
+
+            _text = reader.ReadToEnd();
+            reader.Close();
+            Parse();
+        }
+
+        /// <summary>
+        /// Loads a mixed document from a text
+        /// </summary>
+        /// <param name="html">The text to load.</param>
+        public void LoadHtml(string html)
+        {
+            Load(new StringReader(html));
+        }
+
+        /// <summary>
+        /// Saves the mixed document to the specified stream.
+        /// </summary>
+        /// <param name="outStream">The stream to which you want to save.</param>
+        public void Save(Stream outStream)
+        {
+            StreamWriter sw = new StreamWriter(outStream, GetOutEncoding());
+            Save(sw);
+        }
+
+        /// <summary>
+        /// Saves the mixed document to the specified stream.
+        /// </summary>
+        /// <param name="outStream">The stream to which you want to save.</param>
+        /// <param name="encoding">The character encoding to use.</param>
+        public void Save(Stream outStream, Encoding encoding)
+        {
+            StreamWriter sw = new StreamWriter(outStream, encoding);
+            Save(sw);
+        }
+
+        /// <summary>
+        /// Saves the mixed document to the specified file.
+        /// </summary>
+        /// <param name="filename">The location of the file where you want to save the document.</param>
+        public void Save(string filename)
+        {
+            StreamWriter sw = new StreamWriter(filename, false, GetOutEncoding());
+            Save(sw);
+        }
+
+        /// <summary>
+        /// Saves the mixed document to the specified file.
+        /// </summary>
+        /// <param name="filename">The location of the file where you want to save the document.</param>
+        /// <param name="encoding">The character encoding to use.</param>
+        public void Save(string filename, Encoding encoding)
+        {
+            StreamWriter sw = new StreamWriter(filename, false, encoding);
+            Save(sw);
+        }
+
+        /// <summary>
+        /// Saves the mixed document to the specified StreamWriter.
+        /// </summary>
+        /// <param name="writer">The StreamWriter to which you want to save.</param>
+        public void Save(StreamWriter writer)
+        {
+            Save((TextWriter) writer);
+        }
+
+        /// <summary>
+        /// Saves the mixed document to the specified TextWriter.
+        /// </summary>
+        /// <param name="writer">The TextWriter to which you want to save.</param>
+        public void Save(TextWriter writer)
+        {
+            writer.Flush();
+        }
+
+        #endregion
+
+        #region Internal Methods
+
+        internal MixedCodeDocumentFragment CreateFragment(MixedCodeDocumentFragmentType type)
+        {
+            switch (type)
+            {
+                case MixedCodeDocumentFragmentType.Text:
+                    return new MixedCodeDocumentTextFragment(this);
+
+                case MixedCodeDocumentFragmentType.Code:
+                    return new MixedCodeDocumentCodeFragment(this);
+
+                default:
+                    throw new NotSupportedException();
+            }
+        }
+
+        internal Encoding GetOutEncoding()
+        {
+            if (_streamencoding != null)
+                return _streamencoding;
+            return Encoding.Default;
+        }
+
+        #endregion
+
+        #region Private Methods
+
+        private void IncrementPosition()
+        {
+            _index++;
+            if (_c == 10)
+            {
+                _lineposition = 1;
+                _line++;
+            }
+            else
+                _lineposition++;
+        }
+
+        private void Parse()
+        {
+            _state = ParseState.Text;
+            _index = 0;
+            _currentfragment = CreateFragment(MixedCodeDocumentFragmentType.Text);
+
+            while (_index < _text.Length)
+            {
+                _c = _text[_index];
+                IncrementPosition();
+
+                switch (_state)
+                {
+                    case ParseState.Text:
+                        if (_index + TokenCodeStart.Length < _text.Length)
+                        {
+                            if (_text.Substring(_index - 1, TokenCodeStart.Length) == TokenCodeStart)
+                            {
+                                _state = ParseState.Code;
+                                _currentfragment.Length = _index - 1 - _currentfragment.Index;
+                                _currentfragment = CreateFragment(MixedCodeDocumentFragmentType.Code);
+                                SetPosition();
+                                continue;
+                            }
+                        }
+                        break;
+
+                    case ParseState.Code:
+                        if (_index + TokenCodeEnd.Length < _text.Length)
+                        {
+                            if (_text.Substring(_index - 1, TokenCodeEnd.Length) == TokenCodeEnd)
+                            {
+                                _state = ParseState.Text;
+                                _currentfragment.Length = _index + TokenCodeEnd.Length - _currentfragment.Index;
+                                _index += TokenCodeEnd.Length;
+                                _lineposition += TokenCodeEnd.Length;
+                                _currentfragment = CreateFragment(MixedCodeDocumentFragmentType.Text);
+                                SetPosition();
+                                continue;
+                            }
+                        }
+                        break;
+                }
+            }
+
+            _currentfragment.Length = _index - _currentfragment.Index;
+        }
+
+        private void SetPosition()
+        {
+            _currentfragment.Line = _line;
+            _currentfragment._lineposition = _lineposition;
+            _currentfragment.Index = _index - 1;
+            _currentfragment.Length = 0;
+        }
+
+        #endregion
+
+        #region Nested type: ParseState
+
+        private enum ParseState
+        {
+            Text,
+            Code
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/MixedCodeDocumentCodeFragment.cs b/docs/HtmlAgilityPack/MixedCodeDocumentCodeFragment.cs
new file mode 100644
index 0000000..f74b2f3
--- /dev/null
+++ b/docs/HtmlAgilityPack/MixedCodeDocumentCodeFragment.cs
@@ -0,0 +1,51 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// Represents a fragment of code in a mixed code document.
+    /// </summary>
+    public class MixedCodeDocumentCodeFragment : MixedCodeDocumentFragment
+    {
+        #region Fields
+
+        private string _code;
+
+        #endregion
+
+        #region Constructors
+
+        internal MixedCodeDocumentCodeFragment(MixedCodeDocument doc)
+            :
+                base(doc, MixedCodeDocumentFragmentType.Code)
+        {
+        }
+
+        #endregion
+
+        #region Properties
+
+        /// <summary>
+        /// Gets the fragment code text.
+        /// </summary>
+        public string Code
+        {
+            get
+            {
+                if (_code == null)
+                {
+                    _code = FragmentText.Substring(Doc.TokenCodeStart.Length,
+                                                   FragmentText.Length - Doc.TokenCodeEnd.Length -
+                                                   Doc.TokenCodeStart.Length - 1).Trim();
+                    if (_code.StartsWith("="))
+                    {
+                        _code = Doc.TokenResponseWrite + _code.Substring(1, _code.Length - 1);
+                    }
+                }
+                return _code;
+            }
+            set { _code = value; }
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/MixedCodeDocumentFragment.cs b/docs/HtmlAgilityPack/MixedCodeDocumentFragment.cs
new file mode 100644
index 0000000..cfd268e
--- /dev/null
+++ b/docs/HtmlAgilityPack/MixedCodeDocumentFragment.cs
@@ -0,0 +1,95 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// Represents a base class for fragments in a mixed code document.
+    /// </summary>
+    public abstract class MixedCodeDocumentFragment
+    {
+        #region Fields
+
+        internal MixedCodeDocument Doc;
+        private string _fragmentText;
+        internal int Index;
+        internal int Length;
+        private int _line;
+        internal int _lineposition;
+        internal MixedCodeDocumentFragmentType _type;
+
+        #endregion
+
+        #region Constructors
+
+        internal MixedCodeDocumentFragment(MixedCodeDocument doc, MixedCodeDocumentFragmentType type)
+        {
+            Doc = doc;
+            _type = type;
+            switch (type)
+            {
+                case MixedCodeDocumentFragmentType.Text:
+                    Doc._textfragments.Append(this);
+                    break;
+
+                case MixedCodeDocumentFragmentType.Code:
+                    Doc._codefragments.Append(this);
+                    break;
+            }
+            Doc._fragments.Append(this);
+        }
+
+        #endregion
+
+        #region Properties
+
+        /// <summary>
+        /// Gets the fragement text.
+        /// </summary>
+        public string FragmentText
+        {
+            get
+            {
+                if (_fragmentText == null)
+                {
+                    _fragmentText = Doc._text.Substring(Index, Length);
+                }
+                return FragmentText;
+            }
+            internal set { _fragmentText = value; }
+        }
+
+        /// <summary>
+        /// Gets the type of fragment.
+        /// </summary>
+        public MixedCodeDocumentFragmentType FragmentType
+        {
+            get { return _type; }
+        }
+
+        /// <summary>
+        /// Gets the line number of the fragment.
+        /// </summary>
+        public int Line
+        {
+            get { return _line; }
+            internal set { _line = value; }
+        }
+
+        /// <summary>
+        /// Gets the line position (column) of the fragment.
+        /// </summary>
+        public int LinePosition
+        {
+            get { return _lineposition; }
+        }
+
+        /// <summary>
+        /// Gets the fragment position in the document's stream.
+        /// </summary>
+        public int StreamPosition
+        {
+            get { return Index; }
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/MixedCodeDocumentFragmentList.cs b/docs/HtmlAgilityPack/MixedCodeDocumentFragmentList.cs
new file mode 100644
index 0000000..4a4a41a
--- /dev/null
+++ b/docs/HtmlAgilityPack/MixedCodeDocumentFragmentList.cs
@@ -0,0 +1,236 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+using System;
+using System.Collections;
+
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// Represents a list of mixed code fragments.
+    /// </summary>
+    public class MixedCodeDocumentFragmentList : IEnumerable
+    {
+        #region Fields
+
+        private MixedCodeDocument _doc;
+        private ArrayList _items = new ArrayList();
+
+        #endregion
+
+        #region Constructors
+
+        internal MixedCodeDocumentFragmentList(MixedCodeDocument doc)
+        {
+            _doc = doc;
+        }
+
+        #endregion
+
+        #region Properties
+
+        ///<summary>
+        /// Gets the Document
+        ///</summary>
+        public MixedCodeDocument Doc
+        {
+            get { return _doc; }
+        }
+
+        /// <summary>
+        /// Gets the number of fragments contained in the list.
+        /// </summary>
+        public int Count
+        {
+            get { return _items.Count; }
+        }
+
+        /// <summary>
+        /// Gets a fragment from the list using its index.
+        /// </summary>
+        public MixedCodeDocumentFragment this[int index]
+        {
+            get { return _items[index] as MixedCodeDocumentFragment; }
+        }
+
+        #endregion
+
+        #region IEnumerable Members
+
+        /// <summary>
+        /// Gets an enumerator that can iterate through the fragment list.
+        /// </summary>
+        IEnumerator IEnumerable.GetEnumerator()
+        {
+            return GetEnumerator();
+        }
+
+        #endregion
+
+        #region Public Methods
+
+        /// <summary>
+        /// Appends a fragment to the list of fragments.
+        /// </summary>
+        /// <param name="newFragment">The fragment to append. May not be null.</param>
+        public void Append(MixedCodeDocumentFragment newFragment)
+        {
+            if (newFragment == null)
+            {
+                throw new ArgumentNullException("newFragment");
+            }
+            _items.Add(newFragment);
+        }
+
+        /// <summary>
+        /// Gets an enumerator that can iterate through the fragment list.
+        /// </summary>
+        public MixedCodeDocumentFragmentEnumerator GetEnumerator()
+        {
+            return new MixedCodeDocumentFragmentEnumerator(_items);
+        }
+
+        /// <summary>
+        /// Prepends a fragment to the list of fragments.
+        /// </summary>
+        /// <param name="newFragment">The fragment to append. May not be null.</param>
+        public void Prepend(MixedCodeDocumentFragment newFragment)
+        {
+            if (newFragment == null)
+            {
+                throw new ArgumentNullException("newFragment");
+            }
+            _items.Insert(0, newFragment);
+        }
+
+        /// <summary>
+        /// Remove a fragment from the list of fragments. If this fragment was not in the list, an exception will be raised.
+        /// </summary>
+        /// <param name="fragment">The fragment to remove. May not be null.</param>
+        public void Remove(MixedCodeDocumentFragment fragment)
+        {
+            if (fragment == null)
+            {
+                throw new ArgumentNullException("fragment");
+            }
+            int index = GetFragmentIndex(fragment);
+            if (index == -1)
+            {
+                throw new IndexOutOfRangeException();
+            }
+            RemoveAt(index);
+        }
+
+        /// <summary>
+        /// Remove all fragments from the list.
+        /// </summary>
+        public void RemoveAll()
+        {
+            _items.Clear();
+        }
+
+        /// <summary>
+        /// Remove a fragment from the list of fragments, using its index in the list.
+        /// </summary>
+        /// <param name="index">The index of the fragment to remove.</param>
+        public void RemoveAt(int index)
+        {
+            //MixedCodeDocumentFragment frag = (MixedCodeDocumentFragment) _items[index];
+            _items.RemoveAt(index);
+        }
+
+        #endregion
+
+        #region Internal Methods
+
+        internal void Clear()
+        {
+            _items.Clear();
+        }
+
+        internal int GetFragmentIndex(MixedCodeDocumentFragment fragment)
+        {
+            if (fragment == null)
+            {
+                throw new ArgumentNullException("fragment");
+            }
+            for (int i = 0; i < _items.Count; i++)
+            {
+                if ((_items[i]) == fragment)
+                {
+                    return i;
+                }
+            }
+            return -1;
+        }
+
+        #endregion
+
+        #region Nested type: MixedCodeDocumentFragmentEnumerator
+
+        /// <summary>
+        /// Represents a fragment enumerator.
+        /// </summary>
+        public class MixedCodeDocumentFragmentEnumerator : IEnumerator
+        {
+            #region Fields
+
+            private int _index;
+            private ArrayList _items;
+
+            #endregion
+
+            #region Constructors
+
+            internal MixedCodeDocumentFragmentEnumerator(ArrayList items)
+            {
+                _items = items;
+                _index = -1;
+            }
+
+            #endregion
+
+            #region Properties
+
+            /// <summary>
+            /// Gets the current element in the collection.
+            /// </summary>
+            public MixedCodeDocumentFragment Current
+            {
+                get { return (MixedCodeDocumentFragment) (_items[_index]); }
+            }
+
+            #endregion
+
+            #region IEnumerator Members
+
+            /// <summary>
+            /// Gets the current element in the collection.
+            /// </summary>
+            object IEnumerator.Current
+            {
+                get { return (Current); }
+            }
+
+            /// <summary>
+            /// Advances the enumerator to the next element of the collection.
+            /// </summary>
+            /// <returns>true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.</returns>
+            public bool MoveNext()
+            {
+                _index++;
+                return (_index < _items.Count);
+            }
+
+            /// <summary>
+            /// Sets the enumerator to its initial position, which is before the first element in the collection.
+            /// </summary>
+            public void Reset()
+            {
+                _index = -1;
+            }
+
+            #endregion
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/MixedCodeDocumentFragmentType.cs b/docs/HtmlAgilityPack/MixedCodeDocumentFragmentType.cs
new file mode 100644
index 0000000..28ca542
--- /dev/null
+++ b/docs/HtmlAgilityPack/MixedCodeDocumentFragmentType.cs
@@ -0,0 +1,19 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// Represents the type of fragment in a mixed code document.
+    /// </summary>
+    public enum MixedCodeDocumentFragmentType
+    {
+        /// <summary>
+        /// The fragment contains code.
+        /// </summary>
+        Code,
+
+        /// <summary>
+        /// The fragment contains text.
+        /// </summary>
+        Text,
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/MixedCodeDocumentTextFragment.cs b/docs/HtmlAgilityPack/MixedCodeDocumentTextFragment.cs
new file mode 100644
index 0000000..8aa3cdd
--- /dev/null
+++ b/docs/HtmlAgilityPack/MixedCodeDocumentTextFragment.cs
@@ -0,0 +1,32 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// Represents a fragment of text in a mixed code document.
+    /// </summary>
+    public class MixedCodeDocumentTextFragment : MixedCodeDocumentFragment
+    {
+        #region Constructors
+
+        internal MixedCodeDocumentTextFragment(MixedCodeDocument doc)
+            :
+                base(doc, MixedCodeDocumentFragmentType.Text)
+        {
+        }
+
+        #endregion
+
+        #region Properties
+
+        /// <summary>
+        /// Gets the fragment text.
+        /// </summary>
+        public string Text
+        {
+            get { return FragmentText; }
+            set { FragmentText = value; }
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/NameValuePair.cs b/docs/HtmlAgilityPack/NameValuePair.cs
new file mode 100644
index 0000000..8b70363
--- /dev/null
+++ b/docs/HtmlAgilityPack/NameValuePair.cs
@@ -0,0 +1,35 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+namespace HtmlAgilityPack
+{
+    internal class NameValuePair
+    {
+        #region Fields
+
+        internal readonly string Name;
+        internal string Value;
+
+        #endregion
+
+        #region Constructors
+
+        internal NameValuePair()
+        {
+        }
+
+        internal NameValuePair(string name)
+            :
+                this()
+        {
+            Name = name;
+        }
+
+        internal NameValuePair(string name, string value)
+            :
+                this(name)
+        {
+            Value = value;
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/NameValuePairList.cs b/docs/HtmlAgilityPack/NameValuePairList.cs
new file mode 100644
index 0000000..f4776e9
--- /dev/null
+++ b/docs/HtmlAgilityPack/NameValuePairList.cs
@@ -0,0 +1,101 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+using System;
+using System.Collections;
+
+namespace HtmlAgilityPack
+{
+    internal class NameValuePairList
+    {
+        #region Fields
+
+        internal readonly string Text;
+        private ArrayList _allPairs;
+        private Hashtable _pairsWithName;
+
+        #endregion
+
+        #region Constructors
+
+        internal NameValuePairList() :
+            this(null)
+        {
+        }
+
+        internal NameValuePairList(string text)
+        {
+            Text = text;
+            _allPairs = new ArrayList();
+            _pairsWithName = new Hashtable();
+
+            Parse(text);
+        }
+
+        #endregion
+
+        #region Internal Methods
+
+        internal static string GetNameValuePairsValue(string text, string name)
+        {
+            NameValuePairList l = new NameValuePairList(text);
+            return l.GetNameValuePairValue(name);
+        }
+
+        internal ArrayList GetNameValuePairs(string name)
+        {
+            if (name == null)
+                return _allPairs;
+            return _pairsWithName[name] as ArrayList;
+        }
+
+        internal string GetNameValuePairValue(string name)
+        {
+            if (name == null)
+                throw new ArgumentNullException();
+            ArrayList al = GetNameValuePairs(name);
+            if (al == null)
+                return null;
+
+            // return first item
+            NameValuePair nvp = al[0] as NameValuePair;
+            return nvp != null ? nvp.Value : string.Empty;
+        }
+
+        #endregion
+
+        #region Private Methods
+
+        private void Parse(string text)
+        {
+            _allPairs.Clear();
+            _pairsWithName.Clear();
+            if (text == null)
+                return;
+
+            string[] p = text.Split(';');
+            foreach (string pv in p)
+            {
+                if (pv.Length == 0)
+                    continue;
+                string[] onep = pv.Split(new char[] {'='}, 2);
+                if (onep.Length==0)
+                    continue;
+                NameValuePair nvp = new NameValuePair(onep[0].Trim().ToLower());
+
+                nvp.Value = onep.Length < 2 ? "" : onep[1];
+
+                _allPairs.Add(nvp);
+
+                // index by name
+                ArrayList al = _pairsWithName[nvp.Name] as ArrayList;
+                if (al == null)
+                {
+                    al = new ArrayList();
+                    _pairsWithName[nvp.Name] = al;
+                }
+                al.Add(nvp);
+            }
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/HtmlAgilityPack/crc32.cs b/docs/HtmlAgilityPack/crc32.cs
new file mode 100644
index 0000000..4cc627b
--- /dev/null
+++ b/docs/HtmlAgilityPack/crc32.cs
@@ -0,0 +1,156 @@
+// HtmlAgilityPack V1.0 - Simon Mourier <simon underscore mourier at hotmail dot com>
+namespace HtmlAgilityPack
+{
+    /// <summary>
+    /// A utility class to compute CRC32.
+    /// </summary>
+    public class Crc32
+    {
+        #region Fields
+
+        private uint _crc32;
+
+        #endregion
+
+        #region Static Members
+
+        private static uint[] crc_32_tab = // CRC polynomial 0xedb88320 
+            {
+                0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,
+                0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
+                0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,
+                0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
+                0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,
+                0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
+                0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,
+                0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
+                0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,
+                0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
+                0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,
+                0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
+                0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,
+                0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
+                0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,
+                0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
+                0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,
+                0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
+                0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,
+                0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
+                0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,
+                0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
+                0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,
+                0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
+                0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,
+                0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
+                0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,
+                0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
+                0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,
+                0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
+                0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,
+                0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
+                0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,
+                0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
+                0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,
+                0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
+                0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,
+                0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
+                0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,
+                0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
+                0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,
+                0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
+                0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
+            };
+
+        #endregion
+
+        #region Properties
+
+        internal uint CheckSum
+        {
+            get { return _crc32; }
+            set { _crc32 = value; }
+        }
+
+        #endregion
+
+        #region Public Methods
+
+        /// <summary>
+        /// Compute a checksum for a given array of bytes.
+        /// </summary>
+        /// <param name="bytes">The array of bytes to compute the checksum for.</param>
+        /// <returns>The computed checksum.</returns>
+        public static uint CRC32Bytes(byte[] bytes)
+        {
+            uint oldcrc32;
+            oldcrc32 = 0xFFFFFFFF;
+            int len = bytes.Length;
+
+            for (int i = 0; len > 0; i++)
+            {
+                --len;
+                oldcrc32 = UPDC32(bytes[len], oldcrc32);
+            }
+            return ~oldcrc32;
+        }
+
+        /// <summary>
+        /// Compute a checksum for a given string.
+        /// </summary>
+        /// <param name="text">The string to compute the checksum for.</param>
+        /// <returns>The computed checksum.</returns>
+        public static uint CRC32String(string text)
+        {
+            uint oldcrc32;
+            oldcrc32 = 0xFFFFFFFF;
+            int len = text.Length;
+            ushort uCharVal;
+            byte lowByte, hiByte;
+
+            for (int i = 0; len > 0; i++)
+            {
+                --len;
+                uCharVal = text[len];
+                unchecked
+                {
+                    lowByte = (byte) (uCharVal & 0x00ff);
+                    hiByte = (byte) (uCharVal >> 8);
+                }
+                oldcrc32 = UPDC32(hiByte, oldcrc32);
+                oldcrc32 = UPDC32(lowByte, oldcrc32);
+            }
+
+            return ~oldcrc32;
+        }
+
+        #endregion
+
+        #region Internal Methods
+
+        internal uint AddToCRC32(int c)
+        {
+            return AddToCRC32((ushort) c);
+        }
+
+        internal uint AddToCRC32(ushort c)
+        {
+            byte lowByte, hiByte;
+            lowByte = (byte) (c & 0x00ff);
+            hiByte = (byte) (c >> 8);
+            _crc32 = UPDC32(hiByte, _crc32);
+            _crc32 = UPDC32(lowByte, _crc32);
+            return ~_crc32;
+        }
+
+        #endregion
+
+        #region Private Methods
+
+        private static uint UPDC32(byte octet, uint crc)
+        {
+            return (crc_32_tab[((crc) ^ (octet)) & 0xff] ^ ((crc) >> 8));
+        }
+
+        #endregion
+    }
+}
\ No newline at end of file
diff --git a/docs/Makefile.am b/docs/Makefile.am
index 41d1977..b572814 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -13,7 +13,6 @@ ASSEMBLED_DOCS = \
 
 EXTRA_DIST = \
 	abc-removal.txt		\
-	AgilityPack.dll		\
 	aot-compiler.txt	\
 	api-style.css		\
 	assembly-bundle		\
@@ -73,12 +72,14 @@ EXTRA_DIST = \
 dist-hook:
 	$(mkdir_p)  $(distdir)/sources
 	$(mkdir_p)  $(distdir)/svgs
+	$(mkdir_p)  $(distdir)/HtmlAgilityPack
 	cp sources/*  $(distdir)/sources
 	cp svgs/*     $(distdir)/svgs
+	cp HtmlAgilityPack/*     $(distdir)/HtmlAgilityPack
 
 clean-local:
 	-rm -Rf $(srcdir)/html
-	-rm -f $(srcdir)/deploy/* $(srcdir)/convert.exe*
+	-rm -f $(srcdir)/deploy/* $(srcdir)/convert.exe* $(srcdir)/AgilityPack.dll*
 	-cd $(srcdir) && rm -f $(ASSEMBLED_DOCS)
 
 monoapi.zip: monoapi.tree
@@ -106,5 +107,8 @@ $(srcdir)/deploy/.stamp: convert.exe Makefile.am
 extract: $(srcdir)/deploy/.stamp
 
 convert.exe: convert.cs AgilityPack.dll
-	cd $(srcdir) && $(MAKE) -f docs.make topdir=$(mcs_topdir_from_srcdir) convert.exe
+	cd $(srcdir) && $(MAKE) PROFILE=net_2_0 -f docs.make topdir=$(mcs_topdir_from_srcdir) convert.exe
+
+AgilityPack.dll:
+	cd $(srcdir) && $(MAKE) PROFILE=net_2_0 -f docs.make topdir=$(mcs_topdir_from_srcdir) AgilityPack.dll
 
diff --git a/docs/Makefile.in b/docs/Makefile.in
index 05d64e5..4c957f4 100644
--- a/docs/Makefile.in
+++ b/docs/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -48,6 +50,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -55,9 +58,23 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(sourcesdir)"
-sourcesDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(sources_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -150,6 +167,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -254,7 +272,6 @@ ASSEMBLED_DOCS = \
 
 EXTRA_DIST = \
 	abc-removal.txt		\
-	AgilityPack.dll		\
 	aot-compiler.txt	\
 	api-style.css		\
 	assembly-bundle		\
@@ -318,14 +335,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  docs/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  docs/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu docs/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -343,6 +360,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -352,20 +370,23 @@ clean-libtool:
 install-sourcesDATA: $(sources_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(sourcesdir)" || $(MKDIR_P) "$(DESTDIR)$(sourcesdir)"
-	@list='$(sources_DATA)'; for p in $$list; do \
+	@list='$(sources_DATA)'; test -n "$(sourcesdir)" || list=; \
+	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  f=$(am__strip_dir) \
-	  echo " $(sourcesDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(sourcesdir)/$$f'"; \
-	  $(sourcesDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(sourcesdir)/$$f"; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(sourcesdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(sourcesdir)" || exit $$?; \
 	done
 
 uninstall-sourcesDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(sources_DATA)'; for p in $$list; do \
-	  f=$(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(sourcesdir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(sourcesdir)/$$f"; \
-	done
+	@list='$(sources_DATA)'; test -n "$(sourcesdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	test -n "$$files" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(sourcesdir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(sourcesdir)" && rm -f $$files
 tags: TAGS
 TAGS:
 
@@ -389,13 +410,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -429,6 +454,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -447,6 +473,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -455,18 +483,28 @@ install-data-am: install-sourcesDATA
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -505,12 +543,14 @@ uninstall-am: uninstall-sourcesDATA
 dist-hook:
 	$(mkdir_p)  $(distdir)/sources
 	$(mkdir_p)  $(distdir)/svgs
+	$(mkdir_p)  $(distdir)/HtmlAgilityPack
 	cp sources/*  $(distdir)/sources
 	cp svgs/*     $(distdir)/svgs
+	cp HtmlAgilityPack/*     $(distdir)/HtmlAgilityPack
 
 clean-local:
 	-rm -Rf $(srcdir)/html
-	-rm -f $(srcdir)/deploy/* $(srcdir)/convert.exe*
+	-rm -f $(srcdir)/deploy/* $(srcdir)/convert.exe* $(srcdir)/AgilityPack.dll*
 	-cd $(srcdir) && rm -f $(ASSEMBLED_DOCS)
 
 monoapi.zip: monoapi.tree
@@ -538,7 +578,11 @@ $(srcdir)/deploy/.stamp: convert.exe Makefile.am
 extract: $(srcdir)/deploy/.stamp
 
 convert.exe: convert.cs AgilityPack.dll
-	cd $(srcdir) && $(MAKE) -f docs.make topdir=$(mcs_topdir_from_srcdir) convert.exe
+	cd $(srcdir) && $(MAKE) PROFILE=net_2_0 -f docs.make topdir=$(mcs_topdir_from_srcdir) convert.exe
+
+AgilityPack.dll:
+	cd $(srcdir) && $(MAKE) PROFILE=net_2_0 -f docs.make topdir=$(mcs_topdir_from_srcdir) AgilityPack.dll
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/docs/README b/docs/README
index b705b8f..dfcaed3 100644
--- a/docs/README
+++ b/docs/README
@@ -58,10 +58,8 @@ PROGRAMS
 * convert.cs
 
 	Converts an HTML file into a valid XML document, uses the
-	AgilityPack.dll.  The sources to this DLL live in GNOME CVS
-	module beagle/Filters/AgilityPack.
-
-	A binary is shipped for our convenience.
+	AgilityPack.dll.  The sources to this DLL live in the 
+        HtmlAgilityPack folder, and are a prerequisite for convert.exe.
 
 DATAFILES:
 ---------
diff --git a/docs/api-style.css b/docs/deploy/api-style.css
similarity index 100%
copy from docs/api-style.css
copy to docs/deploy/api-style.css
diff --git a/docs/deploy/mono-api-assembly.html b/docs/deploy/mono-api-assembly.html
new file mode 100644
index 0000000..a971bdd
--- /dev/null
+++ b/docs/deploy/mono-api-assembly.html
@@ -0,0 +1,339 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-assembly.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h2>Assemblies</h2>
+
+<h3>Synopsis</h3>
+
+	<div class="header">
+#include <metadata/assembly.h>
+
+typedef struct _MonoImage MonoImage;
+typedef struct _MonoAssembly MonoAssembly;
+
+typedef struct {
+	const char *name;
+	const char *culture;
+	const char *hash_value;
+	const guint8* public_key;
+	guchar public_key_token [MONO_PUBLIC_KEY_TOKEN_LENGTH];
+	guint32 hash_alg;
+	guint32 hash_len;
+	guint32 flags;
+	guint16 major, minor, build, revision;
+} MonoAssemblyName;
+
+MonoAssembly*          <a href="#api:mono_assembly_open">mono_assembly_open</a>           (const char *filename, 
+                                                     MonoImageOpenStatus *status);
+void                   <a href="#api:mono_assembly_close">mono_assembly_close</a>          (MonoAssembly *assembly);
+MonoAssembly*          <a href="#api:mono_assembly_load">mono_assembly_load</a>           (MonoAssemblyName *aname, 
+                                                     const char *basedir, 
+                                                     MonoImageOpenStatus *status);
+MonoAssembly*          <a href="#api:mono_assembly_load_full">mono_assembly_load_full</a>      (MonoAssemblyName *aname, 
+                                                     const char *basedir, 
+                                                     MonoImageOpenStatus *status, 
+                                                     gboolean refonly);
+MonoAssembly*          <a href="#api:mono_assembly_loaded">mono_assembly_loaded</a>         (MonoAssemblyName *aname);
+MonoImage*             <a href="#api:mono_assembly_get_image">mono_assembly_get_image</a>      (MonoAssembly *assembly);
+MonoAssembly*          <a href="#api:mono_assembly_get_main">mono_assembly_get_main</a>       (void);
+G_CONST_RETURN gchar * <a href="#api:mono_assembly_getrootdir">mono_assembly_getrootdir</a>     (void);
+void                   <a href="#api:mono_assembly_addref">mono_assembly_addref</a>         (MonoAssembly *assembly);
+gboolean               <a href="#api:mono_assembly_name_parse">mono_assembly_name_parse</a>     (const char *name, 
+                                                     MonoAssemblyName *aname);
+void                   <a href="#api:mono_assembly_name_free">mono_assembly_name_free</a>      (MonoAssemblyName *aname);
+char*                  <a href="#api:mono_stringify_assembly_name">mono_stringify_assembly_name</a> (MonoAssemblyName *aname);
+gboolean               <a href="#api:mono_assembly_names_equal">mono_assembly_names_equal</a>    (MonoAssemblyName *l, 
+                                                     MonoAssemblyName *r);
+
+	
+	</div>
+
+<a name="cil_assembly_load"></a>
+<h3>Assembly Loading</h3>
+
+ <a name="api:mono_assembly_open"></a>
+ <div class="api">
+    <div class="api-entry">mono_assembly_open</div>
+
+    <div class="prototype">MonoAssembly*
+mono_assembly_open (const char *filename, MonoImageOpenStatus *status)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>filename:</i></dt><dd> Opens the assembly pointed out by this name</dd><dt><i>status:</i></dt><dd> where a status code can be returned</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a pointer to the MonoAssembly if <i>filename</i> contains a valid
+
+	 assembly or NULL on error.  Details about the error are stored in the
+	 <i>status</i> variable.</blockquote>
+<b>Remarks</b>
+<p />	 
+	 mono_assembly_open opens the PE-image pointed by <i>filename</i>, and
+	 loads any external assemblies referenced by it.
+	
+
+</div> <a name="api:mono_assembly_close"></a>
+ <div class="api">
+    <div class="api-entry">mono_assembly_close</div>
+
+    <div class="prototype">void
+mono_assembly_close (MonoAssembly *assembly)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>assembly:</i></dt><dd> the assembly to release.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This method releases a reference to the <i>assembly</i>.  The assembly is
+	 only released when all the outstanding references to it are released.
+
+</div> <a name="api:mono_assembly_load"></a>
+ <div class="api">
+    <div class="api-entry">mono_assembly_load</div>
+
+    <div class="prototype">MonoAssembly*
+mono_assembly_load (MonoAssemblyName *aname, const char *basedir, MonoImageOpenStatus *status)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>aname:</i></dt><dd> A MonoAssemblyName with the assembly name to load.</dd><dt><i>basedir:</i></dt><dd> A directory to look up the assembly at.</dd><dt><i>status:</i></dt><dd> a pointer to a MonoImageOpenStatus to return the status of the load operation</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the assembly referenced by <i>aname</i> loaded or NULL on error.   On error the
+
+	 value pointed by status is updated with an error code.</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Loads the assembly referenced by <i>aname</i>, if the value of <i>basedir</i> is not NULL, it
+	 attempts to load the assembly from that directory before probing the standard locations.
+	
+
+</div> <a name="api:mono_assembly_load_full"></a>
+ <div class="api">
+    <div class="api-entry">mono_assembly_load_full</div>
+
+    <div class="prototype">MonoAssembly*
+mono_assembly_load_full (MonoAssemblyName *aname, const char *basedir, MonoImageOpenStatus *status, gboolean refonly)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>aname:</i></dt><dd> A MonoAssemblyName with the assembly name to load.</dd><dt><i>basedir:</i></dt><dd> A directory to look up the assembly at.</dd><dt><i>status:</i></dt><dd> a pointer to a MonoImageOpenStatus to return the status of the load operation</dd><dt><i>refonly:</i></dt><dd> Whether this assembly is being opened in "reflection-only" mode.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the assembly referenced by <i>aname</i> loaded or NULL on error.   On error the
+
+	 value pointed by status is updated with an error code.</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Loads the assembly referenced by <i>aname</i>, if the value of <i>basedir</i> is not NULL, it
+	 attempts to load the assembly from that directory before probing the standard locations.
+	
+	 If the assembly is being opened in reflection-only mode (<i>refonly</i> set to TRUE) then no 
+	 assembly binding takes place.
+	
+
+</div> <a name="api:mono_assembly_loaded"></a>
+ <div class="api">
+    <div class="api-entry">mono_assembly_loaded</div>
+
+    <div class="prototype">MonoAssembly*
+mono_assembly_loaded (MonoAssemblyName *aname)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>aname:</i></dt><dd> an assembly to look for.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  NULL If the given <i>aname</i> assembly has not been loaded, or a pointer to
+
+	 a MonoAssembly that matches the MonoAssemblyName specified.</blockquote>
+
+
+</div><h3>Working with Assemblies</h3>
+
+ <a name="api:mono_assembly_get_image"></a>
+ <div class="api">
+    <div class="api-entry">mono_assembly_get_image</div>
+
+    <div class="prototype">MonoImage*
+mono_assembly_get_image (MonoAssembly *assembly)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>assembly:</i></dt><dd> The assembly to retrieve the image from</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the MonoImage associated with this assembly.
+</blockquote>
+
+</div> <a name="api:mono_assembly_get_main"></a>
+ <div class="api">
+    <div class="api-entry">mono_assembly_get_main</div>
+
+    <div class="prototype">MonoAssembly*
+mono_assembly_get_main (void)
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  the assembly for the application, the first assembly that is loaded by the VM
+</blockquote>
+
+</div> <a name="api:mono_assembly_getrootdir"></a>
+ <div class="api">
+    <div class="api-entry">mono_assembly_getrootdir</div>
+
+    <div class="prototype">G_CONST_RETURN gchar *
+mono_assembly_getrootdir (void)
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  a string with the directory, this string should not be freed.
+</blockquote>
+<b>Remarks</b>
+<p />	 <p />
+
+	 Obtains the root directory used for looking up assemblies.
+	
+
+</div> <a name="api:mono_assembly_addref"></a>
+ <div class="api">
+    <div class="api-entry">mono_assembly_addref</div>
+
+    <div class="prototype">void
+mono_assembly_addref (MonoAssembly *assembly)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>assemnly:</i></dt><dd> the assembly to reference</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This routine increments the reference count on a MonoAssembly.
+	 The reference count is reduced every time the method mono_assembly_close() is
+	 invoked.
+
+
+</div><h3>Assembly Names</h3>
+
+	<p />The MonoAssemblyName contains the full identity of an
+	assembly (name, culture, public key, public key token,
+	version and any other flags).
+
+	<p />These unmanaged objects represent the <a href="http://www.mono-project.com/monodoc/T:System.Reflection.AssemblyName">System.Reflection.AssemblyName</a>
+	managed type.
+
+ <a name="api:mono_assembly_name_parse"></a>
+ <div class="api">
+    <div class="api-entry">mono_assembly_name_parse</div>
+
+    <div class="prototype">gboolean
+mono_assembly_name_parse (const char *name, MonoAssemblyName *aname)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>name:</i></dt><dd> name to parse</dd><dt><i>aname:</i></dt><dd> the destination assembly name</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  true if the name could be parsed.
+</blockquote>
+<b>Remarks</b>
+<p />	 <p />
+
+	 Parses an assembly qualified type name and assigns the name,
+	 version, culture and token to the provided assembly name object.
+	
+
+</div> <a name="api:mono_assembly_name_free"></a>
+ <div class="api">
+    <div class="api-entry">mono_assembly_name_free</div>
+
+    <div class="prototype">void
+mono_assembly_name_free (MonoAssemblyName *aname)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>aname:</i></dt><dd> assembly name to free</dd></blockquote>
+<b>Remarks</b>
+<p />	 <p />
+
+	 Frees the provided assembly name object.
+	 (it does not frees the object itself, only the name members).
+
+</div> <a name="api:mono_stringify_assembly_name"></a>
+ <div class="api">
+    <div class="api-entry">mono_stringify_assembly_name</div>
+
+    <div class="prototype">char*
+mono_stringify_assembly_name (MonoAssemblyName *aname)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>aname:</i></dt><dd> the assembly name.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a newly allocated string with a string representation of
+
+	 the assembly name.</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Convert <i>aname</i> into its string format. The returned string is dynamically
+	 allocated and should be freed by the caller.
+	
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-class.html b/docs/deploy/mono-api-class.html
new file mode 100644
index 0000000..f54503c
--- /dev/null
+++ b/docs/deploy/mono-api-class.html
@@ -0,0 +1,1001 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-class.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h2>Class Operations</h2>
+
+ <a name="api:mono_class_array_element_size"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_array_element_size</div>
+
+    <div class="prototype">gint32
+mono_class_array_element_size (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> </dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the number of bytes an element of type <i>klass</i>
+
+	 uses when stored into an array.</blockquote>
+
+</div> <a name="api:mono_class_create_generic_2"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_create_generic_2</div>
+
+    <div class="prototype">Prototype: mono_class_create_generic_2</div>
+<p />
+
+</div> <a name="api:mono_class_create_generic"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_create_generic</div>
+
+    <div class="prototype">Prototype: mono_class_create_generic</div>
+<p />
+
+</div> <a name="api:mono_class_data_size"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_data_size</div>
+
+    <div class="prototype">gint32
+mono_class_data_size (MonoClass *klass)
+	
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> a class </dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the size of the static class data
+</blockquote>
+<b>Remarks</b>
+<p />	 <p />
+
+
+</div> <a name="api:mono_class_enum_basetype"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_enum_basetype</div>
+
+    <div class="prototype">MonoType*
+mono_class_enum_basetype (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the underlying type representation for an enumeration.
+</blockquote>
+
+</div> <a name="api:mono_class_from_generic_parameter"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_from_generic_parameter</div>
+
+    <div class="prototype">Prototype: mono_class_from_generic_parameter</div>
+<p />
+
+</div> <a name="api:mono_class_from_mono_type"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_from_mono_type</div>
+
+    <div class="prototype">Prototype: mono_class_from_mono_type</div>
+<p />
+
+</div> <a name="api:mono_class_from_name_case"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_from_name_case</div>
+
+    <div class="prototype">MonoClass*
+mono_class_from_name_case (MonoImage *image, const char* name_space, const char *name)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>image:</i></dt><dd> The MonoImage where the type is looked up in</dd><dt><i>name_space:</i></dt><dd> the type namespace</dd><dt><i>name:</i></dt><dd> the type short name.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Obtains a MonoClass with a given namespace and a given name which
+	 is located in the given MonoImage.   The namespace and name
+	 lookups are case insensitive.
+
+</div> <a name="api:mono_class_from_name"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_from_name</div>
+
+    <div class="prototype">MonoClass*
+mono_class_from_name (MonoImage *image, const char* name_space, const char *name)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>image:</i></dt><dd> The MonoImage where the type is looked up in</dd><dt><i>name_space:</i></dt><dd> the type namespace</dd><dt><i>name:</i></dt><dd> the type short name.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Obtains a MonoClass with a given namespace and a given name which
+	 is located in the given MonoImage.   
+
+</div> <a name="api:mono_class_from_typeref"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_from_typeref</div>
+
+    <div class="prototype">Prototype: mono_class_from_typeref</div>
+<p />
+
+</div> <a name="api:mono_class_get_allocation_ftn"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_allocation_ftn</div>
+
+    <div class="prototype">
+void*
+mono_class_get_allocation_ftn (MonoVTable *vtable, gboolean for_box, gboolean *pass_size_in_words)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>vtable:</i></dt><dd> vtable</dd><dt><i>for_box:</i></dt><dd> the object will be used for boxing</dd><dt><i>pass_size_in_words:</i></dt><dd> </dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Return the allocation function appropriate for the given class.
+
+</div> <a name="api:mono_class_get_byref_type"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_byref_type</div>
+
+    <div class="prototype">MonoType*
+mono_class_get_byref_type (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass to act on</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	
+<p />
+
+</div> <a name="api:mono_class_get_element_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_element_class</div>
+
+    <div class="prototype">MonoClass*
+mono_class_get_element_class (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the element class of an array or an enumeration.
+</blockquote>
+
+</div> <a name="api:mono_class_get_events"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_events</div>
+
+    <div class="prototype">MonoEvent*
+mono_class_get_events (MonoClass* klass, gpointer *iter)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a <i>MonoEvent</i>* on each invocation, or NULL when no more are available.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 This routine is an iterator routine for retrieving the properties in a class.
+	
+	 You must pass a gpointer that points to zero and is treated as an opaque handle to
+	 iterate over all of the elements.  When no more values are
+	 available, the return value is NULL.
+	
+
+</div> <a name="api:mono_class_get_event_token"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_event_token</div>
+
+    <div class="prototype">Prototype: mono_class_get_event_token</div>
+<p />
+
+</div> <a name="api:mono_class_get_field_from_name"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_field_from_name</div>
+
+    <div class="prototype">MonoClassField*
+mono_class_get_field_from_name (MonoClass *klass, const char *name)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the class to lookup the field.</dd><dt><i>name:</i></dt><dd> the field name</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the MonoClassField pointer of the named field or NULL
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Search the class <i>klass</i> and it's parents for a field with the name <i>name</i>.
+	
+<p />
+
+</div> <a name="api:mono_class_get_field"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_field</div>
+
+    <div class="prototype">MonoClassField*
+mono_class_get_field (MonoClass *class, guint32 field_token)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>class:</i></dt><dd> the class to lookup the field.</dd><dt><i>field_token:</i></dt><dd> the field token</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  A MonoClassField representing the type and offset of
+
+	 the field, or a NULL value if the field does not belong to this
+	 class.</blockquote>
+
+</div> <a name="api:mono_class_get_fields"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_fields</div>
+
+    <div class="prototype">MonoClassField*
+mono_class_get_fields (MonoClass* klass, gpointer *iter)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a <i>MonoClassField</i>* on each iteration, or NULL when no more fields are available.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 This routine is an iterator routine for retrieving the fields in a class.
+	
+	 You must pass a gpointer that points to zero and is treated as an opaque handle to
+	 iterate over all of the elements.  When no more values are
+	 available, the return value is NULL.
+	
+
+</div> <a name="api:mono_class_get_field_token"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_field_token</div>
+
+    <div class="prototype">guint32
+mono_class_get_field_token (MonoClassField *field)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>field:</i></dt><dd> the field we need the token of</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the token representing the field in the image it was loaded from.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Get the token of a field. Note that the tokesn is only valid for the image
+	 the field was loaded from. Don't use this function for fields in dynamic types.
+	
+<p />
+
+</div> <a name="api:mono_class_get_flags"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_flags</div>
+
+    <div class="prototype">guint32
+mono_class_get_flags (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the flags from the TypeDef table.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 The type flags from the TypeDef table from the metadata.
+	 see the TYPE_ATTRIBUTE_* definitions on tabledefs.h for the
+	 different values.
+	
+
+</div> <a name="api:mono_class_get_full"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_full</div>
+
+    <div class="prototype">MonoClass*
+mono_class_get_full (MonoImage *image, guint32 type_token, MonoGenericContext *context)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>image:</i></dt><dd> the image where the class resides</dd><dt><i>type_token:</i></dt><dd> the token for the class</dd><dt><i>context:</i></dt><dd> the generic context used to evaluate generic instantiations in</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the MonoClass that represents <i>type_token</i> in <i>image</i>
+</blockquote>
+
+</div> <a name="api:mono_class_get_image"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_image</div>
+
+    <div class="prototype">Prototype: mono_class_get_image</div>
+<p />
+
+</div> <a name="api:mono_class_get_implemented_interfaces"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_implemented_interfaces</div>
+
+    <div class="prototype">Prototype: mono_class_get_implemented_interfaces</div>
+<p />
+
+</div> <a name="api:mono_class_get_interfaces"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_interfaces</div>
+
+    <div class="prototype">MonoClass*
+mono_class_get_interfaces (MonoClass* klass, gpointer *iter)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a <i>Monoclass</i>* on each invocation, or NULL when no more are available.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 This routine is an iterator routine for retrieving the interfaces implemented by this class.
+	
+	 You must pass a gpointer that points to zero and is treated as an opaque handle to
+	 iterate over all of the elements.  When no more values are
+	 available, the return value is NULL.
+	
+
+</div> <a name="api:mono_class_get_method_from_name"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_method_from_name</div>
+
+    <div class="prototype">MonoMethod*
+mono_class_get_method_from_name (MonoClass *klass, const char *name, int param_count)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> where to look for the method</dd><dt><i>name_space:</i></dt><dd> name of the method</dd><dt><i>param_count:</i></dt><dd> number of parameters. -1 for any number.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Obtains a MonoMethod with a given name and number of parameters.
+	 It only works if there are no multiple signatures for any given method name.
+
+</div> <a name="api:mono_class_get_methods"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_methods</div>
+
+    <div class="prototype">MonoMethod*
+mono_class_get_methods (MonoClass* klass, gpointer *iter)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a MonoMethod on each iteration or NULL when no more methods are available.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 This routine is an iterator routine for retrieving the fields in a class.
+	
+	 You must pass a gpointer that points to zero and is treated as an opaque handle to
+	 iterate over all of the elements.  When no more values are
+	 available, the return value is NULL.
+	
+
+</div> <a name="api:mono_class_get"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get</div>
+
+    <div class="prototype">Prototype: mono_class_get</div>
+<p />
+
+</div> <a name="api:mono_class_get_name"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_name</div>
+
+    <div class="prototype">const char*
+mono_class_get_name (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the name of the class.
+</blockquote>
+
+</div> <a name="api:mono_class_get_namespace"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_namespace</div>
+
+    <div class="prototype">const char*
+mono_class_get_namespace (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the namespace of the class.
+</blockquote>
+
+</div> <a name="api:mono_class_get_nested_types"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_nested_types</div>
+
+    <div class="prototype">MonoClass*
+mono_class_get_nested_types (MonoClass* klass, gpointer *iter)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a <i>Monoclass</i>* on each invocation, or NULL when no more are available.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 This routine is an iterator routine for retrieving the nested types of a class.
+	 This works only if <i>klass</i> is non-generic, or a generic type definition.
+	
+	 You must pass a gpointer that points to zero and is treated as an opaque handle to
+	 iterate over all of the elements.  When no more values are
+	 available, the return value is NULL.
+	
+
+</div> <a name="api:mono_class_get_nesting_type"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_nesting_type</div>
+
+    <div class="prototype">Prototype: mono_class_get_nesting_type</div>
+<p />
+
+</div> <a name="api:mono_class_get_overrides"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_overrides</div>
+
+    <div class="prototype">Prototype: mono_class_get_overrides</div>
+<p />
+
+</div> <a name="api:mono_class_get_parent"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_parent</div>
+
+    <div class="prototype">MonoClass*
+mono_class_get_parent (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the parent class for this class.
+</blockquote>
+
+</div> <a name="api:mono_class_get_properties"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_properties</div>
+
+    <div class="prototype">MonoProperty*
+mono_class_get_properties (MonoClass* klass, gpointer *iter)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a <i>MonoProperty</i>* on each invocation, or NULL when no more are available.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 This routine is an iterator routine for retrieving the properties in a class.
+	
+	 You must pass a gpointer that points to zero and is treated as an opaque handle to
+	 iterate over all of the elements.  When no more values are
+	 available, the return value is NULL.
+	
+
+</div> <a name="api:mono_class_get_property_from_name"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_property_from_name</div>
+
+    <div class="prototype">Prototype: mono_class_get_property_from_name</div>
+<p />
+
+</div> <a name="api:mono_class_get_property_token"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_property_token</div>
+
+    <div class="prototype">Prototype: mono_class_get_property_token</div>
+<p />
+
+</div> <a name="api:mono_class_get_rank"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_rank</div>
+
+    <div class="prototype">int
+mono_class_get_rank (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the rank for the array (the number of dimensions).
+</blockquote>
+
+</div> <a name="api:mono_class_get_type"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_type</div>
+
+    <div class="prototype">MonoType*
+mono_class_get_type (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the MonoType from the class.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 This method returns the internal Type representation for the class.
+	
+
+</div> <a name="api:mono_class_inflate_generic_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_inflate_generic_method</div>
+
+    <div class="prototype">MonoMethod*
+mono_class_inflate_generic_method_full (MonoMethod *method, MonoClass *klass_hint, MonoGenericContext *context)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+	 Instantiate method <i>method</i> with the generic context <i>context</i>.
+	 BEWARE: All non-trivial fields are invalid, including klass, signature, and header.
+	         Use mono_method_signature () and mono_method_get_header () to get the correct values.
+
+</div> <a name="api:mono_class_inflate_generic_type"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_inflate_generic_type</div>
+
+    <div class="prototype">Prototype: mono_class_inflate_generic_type</div>
+<p />
+
+</div> <a name="api:mono_class_init"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_init</div>
+
+    <div class="prototype">gboolean
+mono_class_init (MonoClass *class)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>class:</i></dt><dd> the class to initialize</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	   Compute the instance_size, class_size and other infos that cannot be 
+	 computed at mono_class_get() time. Also compute vtable_size if possible. 
+	 Returns TRUE on success or FALSE if there was a problem in loading
+	 the type (incorrect assemblies, missing assemblies, methods, etc). 
+	
+	 LOCKING: Acquires the loader lock.
+
+</div> <a name="api:mono_class_instance_size"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_instance_size</div>
+
+    <div class="prototype">gint32
+mono_class_instance_size (MonoClass *klass)
+	
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> a class </dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the size of an object instance
+</blockquote>
+<b>Remarks</b>
+<p />	 <p />
+
+
+</div> <a name="api:mono_class_is_assignable_from"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_is_assignable_from</div>
+
+    <div class="prototype">gboolean
+mono_class_is_assignable_from (MonoClass *klass, MonoClass *oklass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the class to be assigned to</dd><dt><i>oklass:</i></dt><dd> the source class</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  true if an instance of object oklass can be assigned to an
+
+	 instance of object <i>klass</i></blockquote>
+
+</div> <a name="api:mono_class_is_enum"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_is_enum</div>
+
+    <div class="prototype">gboolean
+mono_class_is_enum (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  true if the MonoClass represents an enumeration.
+</blockquote>
+
+</div> <a name="api:mono_class_is_open_constructed_type"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_is_open_constructed_type</div>
+
+    <div class="prototype">Prototype: mono_class_is_open_constructed_type</div>
+<p />
+
+</div> <a name="api:mono_class_is_subclass_of"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_is_subclass_of</div>
+
+    <div class="prototype">Prototype: mono_class_is_subclass_of</div>
+<p />
+
+</div> <a name="api:mono_class_is_valuetype"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_is_valuetype</div>
+
+    <div class="prototype">gboolean
+mono_class_is_valuetype (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  true if the MonoClass represents a ValueType.
+</blockquote>
+
+</div> <a name="api:mono_class_layout_fields"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_layout_fields</div>
+
+    <div class="prototype">Prototype: mono_class_layout_fields</div>
+<p />
+
+</div> <a name="api:mono_class_min_align"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_min_align</div>
+
+    <div class="prototype">gint32
+mono_class_min_align (MonoClass *klass)
+	
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> a class </dd></blockquote>
+<b>Returns</b>
+<blockquote>	  minimm alignment requirements 
+</blockquote>
+<b>Remarks</b>
+<p />	 <p />
+
+
+</div> <a name="api:mono_class_native_size"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_native_size</div>
+
+    <div class="prototype">gint32
+mono_class_native_size (MonoClass *klass, guint32 *align)
+	
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> a class </dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the native size of an object instance (when marshaled 
+
+	 to unmanaged code) </blockquote>
+<b>Remarks</b>
+<p />	 <p />
+
+
+</div> <a name="api:mono_class_needs_cctor_run"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_needs_cctor_run</div>
+
+    <div class="prototype">gboolean
+mono_class_needs_cctor_run (MonoClass *klass, MonoMethod *caller)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass pointer</dd><dt><i>caller:</i></dt><dd> a MonoMethod describing the caller</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Determines whenever the class has a static constructor and whenever it
+	 needs to be called when executing CALLER.
+
+</div> <a name="api:mono_class_num_events"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_num_events</div>
+
+    <div class="prototype">int
+mono_class_num_events (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the number of events in the class.
+</blockquote>
+
+</div> <a name="api:mono_class_num_fields"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_num_fields</div>
+
+    <div class="prototype">int
+mono_class_num_fields (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the number of static and instance fields in the class.
+</blockquote>
+
+</div> <a name="api:mono_class_num_methods"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_num_methods</div>
+
+    <div class="prototype">int
+mono_class_num_methods (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the number of methods in the class.
+</blockquote>
+
+</div> <a name="api:mono_class_num_properties"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_num_properties</div>
+
+    <div class="prototype">int
+mono_class_num_properties (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the MonoClass to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the number of properties in the class.
+</blockquote>
+
+</div> <a name="api:mono_class_setup_mono_type"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_setup_mono_type</div>
+
+    <div class="prototype">Prototype: mono_class_setup_mono_type</div>
+<p />
+
+</div> <a name="api:mono_class_setup_parent"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_setup_parent</div>
+
+    <div class="prototype">Prototype: mono_class_setup_parent</div>
+<p />
+
+</div> <a name="api:mono_class_setup_supertypes"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_setup_supertypes</div>
+
+    <div class="prototype">Prototype: mono_class_setup_supertypes</div>
+<p />
+
+</div> <a name="api:mono_class_setup_vtable"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_setup_vtable</div>
+
+    <div class="prototype">Prototype: mono_class_setup_vtable</div>
+<p />
+
+</div> <a name="api:mono_class_value_size"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_value_size</div>
+
+    <div class="prototype">gint32
+mono_class_value_size      (MonoClass *klass, guint32 *align)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> a class </dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the size of a value of kind <i>klass</i>
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 This function is used for value types, and return the
+	 space and the alignment to store that kind of value object.
+	
+
+</div> <a name="api:mono_class_vtable"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_vtable</div>
+
+    <div class="prototype">MonoVTable*
+mono_class_vtable (MonoDomain *domain, MonoClass *class)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>domain:</i></dt><dd> the application domain</dd><dt><i>class:</i></dt><dd> the class to initialize</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 VTables are domain specific because we create domain specific code, and 
+	 they contain the domain specific static class data.
+	 On failure, NULL is returned, and class->exception_type is set.
+
+</div> <a name="api:mono_class_get_cctor"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_cctor</div>
+
+    <div class="prototype">MonoMethod*
+mono_class_get_cctor (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> A MonoClass pointer</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the static constructor of <i>klass</i> if it exists, NULL otherwise.
+</blockquote>
+
+</div> <a name="api:mono_class_get_finalizer"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_finalizer</div>
+
+    <div class="prototype">MonoMethod*
+mono_class_get_finalizer (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> The MonoClass pointer</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the finalizer method of <i>klass</i> if it exists, NULL otherwise.
+</blockquote>
+
+</div> <a name="api:mono_class_get_method_from_name_flags"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_method_from_name_flags</div>
+
+    <div class="prototype">MonoMethod*
+mono_class_get_method_from_name_flags (MonoClass *klass, const char *name, int param_count, int flags)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> where to look for the method</dd><dt><i>name_space:</i></dt><dd> name of the method</dd><dt><i>param_count:</i></dt><dd> number of parameters. -1 for any number.</dd><dt><i>flags:</i></dt><dd> flags which must be set in the method</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Obtains a MonoMethod with a given name and number of parameters.
+	 It only works if there are no multiple signatures for any given method name.
+
+</div> <a name="api:mono_class_inflate_generic_signature"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_inflate_generic_signature</div>
+
+    <div class="prototype">Prototype: mono_class_inflate_generic_signature</div>
+<p />
+
+</div> <a name="api:mono_class_name_from_token"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_name_from_token</div>
+
+    <div class="prototype">Prototype: mono_class_name_from_token</div>
+<p />
+
+</div> <a name="api:mono_class_setup_methods"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_setup_methods</div>
+
+    <div class="prototype">Prototype: mono_class_setup_methods</div>
+<p />
+
+</div> <a name="api:mono_class_setup_vtable_general"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_setup_vtable_general</div>
+
+    <div class="prototype">Prototype: mono_class_setup_vtable_general</div>
+<p />
+
+</div> <a name="api:mono_class_get_exception_for_failure"></a>
+ <div class="api">
+    <div class="api-entry">mono_class_get_exception_for_failure</div>
+
+    <div class="prototype">MonoException*
+mono_class_get_exception_for_failure (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> class in which the failure was detected</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Return a constructed MonoException than the caller can then throw
+	 using mono_raise_exception - or NULL if no failure is present (or
+	 doesn't result in an exception).
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-codegen.html b/docs/deploy/mono-api-codegen.html
new file mode 100644
index 0000000..29d98ad
--- /dev/null
+++ b/docs/deploy/mono-api-codegen.html
@@ -0,0 +1,349 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-codegen.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h3>Code manager</h3>
+
+ <a name="api:mono_code_manager_commit"></a>
+ <div class="api">
+    <div class="api-entry">mono_code_manager_commit</div>
+
+    <div class="prototype">void
+mono_code_manager_commit (MonoCodeManager *cman, void *data, int size, int newsize)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>cman:</i></dt><dd> a code manager</dd><dt><i>data:</i></dt><dd> the pointer returned by mono_code_manager_reserve ()</dd><dt><i>size:</i></dt><dd> the size requested in the call to mono_code_manager_reserve ()</dd><dt><i>newsize:</i></dt><dd> the new size to reserve</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 If we reserved too much room for a method and we didn't allocate
+	 already from the code manager, we can get back the excess allocation
+	 for later use in the code manager.
+
+</div> <a name="api:mono_code_manager_destroy"></a>
+ <div class="api">
+    <div class="api-entry">mono_code_manager_destroy</div>
+
+    <div class="prototype">void
+mono_code_manager_destroy (MonoCodeManager *cman)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>cman:</i></dt><dd> a code manager</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Free all the memory associated with the code manager <i>cman</i>.
+
+</div> <a name="api:mono_code_manager_foreach"></a>
+ <div class="api">
+    <div class="api-entry">mono_code_manager_foreach</div>
+
+    <div class="prototype">void
+mono_code_manager_foreach (MonoCodeManager *cman, MonoCodeManagerFunc func, void *user_data)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>cman:</i></dt><dd> a code manager</dd><dt><i>func:</i></dt><dd> a callback function pointer</dd><dt><i>user_data:</i></dt><dd> additional data to pass to <i>func</i></dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Invokes the callback <i>func</i> for each different chunk of memory allocated
+	 in the code manager <i>cman</i>.
+
+</div> <a name="api:mono_code_manager_invalidate"></a>
+ <div class="api">
+    <div class="api-entry">mono_code_manager_invalidate</div>
+
+    <div class="prototype">void             
+mono_code_manager_invalidate (MonoCodeManager *cman)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>cman:</i></dt><dd> a code manager</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Fill all the memory with an invalid native code value
+	 so that any attempt to execute code allocated in the code
+	 manager <i>cman</i> will fail. This is used for debugging purposes.
+
+</div> <a name="api:mono_code_manager_new_dynamic"></a>
+ <div class="api">
+    <div class="api-entry">mono_code_manager_new_dynamic</div>
+
+    <div class="prototype">MonoCodeManager* 
+mono_code_manager_new_dynamic (void)
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  the new code manager
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Creates a new code manager suitable for holding native code that can be
+	 used for single or small methods that need to be deallocated independently
+	 of other native code.
+	
+
+</div> <a name="api:mono_code_manager_new"></a>
+ <div class="api">
+    <div class="api-entry">mono_code_manager_new</div>
+
+    <div class="prototype">MonoCodeManager* 
+mono_code_manager_new (void)
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  the new code manager
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Creates a new code manager. A code manager can be used to allocate memory
+	 suitable for storing native code that can be later executed.
+	 A code manager allocates memory from the operating system in large chunks
+	 (typically 64KB in size) so that many methods can be allocated inside them
+	 close together, improving cache locality.
+	
+
+</div> <a name="api:mono_code_manager_reserve"></a>
+ <div class="api">
+    <div class="api-entry">mono_code_manager_reserve</div>
+
+    <div class="prototype">void*
+mono_code_manager_reserve (MonoCodeManager *cman, int size)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>cman:</i></dt><dd> a code manager</dd><dt><i>size:</i></dt><dd> size of memory to allocate</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the pointer to the allocated memory or <i>NULL</i> on failure
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Allocates at least <i>size</i> bytes of memory inside the code manager <i>cman</i>.
+	
+
+
+</div><h3>Registration services</h3>
+
+	<p />The core services of Mono are independent of the execution
+	system.  The interpreter and the native code generator both
+	use the functions in the following section to register
+	handlers to execute code with the execution system.
+
+	<p />These APIs would allow a different execution engine (code
+	generator or interpreter) to be hooked to the rest of the Mono
+	VM. 
+	
+ <a name="api:mono_install_assembly_load_hook"></a>
+ <div class="api">
+    <div class="api-entry">mono_install_assembly_load_hook</div>
+
+    <div class="prototype">Prototype: mono_install_assembly_load_hook</div>
+<p />
+
+</div> <a name="api:mono_install_assembly_preload_hook"></a>
+ <div class="api">
+    <div class="api-entry">mono_install_assembly_preload_hook</div>
+
+    <div class="prototype">Prototype: mono_install_assembly_preload_hook</div>
+<p />
+
+</div> <a name="api:mono_install_assembly_search_hook"></a>
+ <div class="api">
+    <div class="api-entry">mono_install_assembly_search_hook</div>
+
+    <div class="prototype">Prototype: mono_install_assembly_search_hook</div>
+<p />
+
+</div> <a name="api:mono_install_compile_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_install_compile_method</div>
+
+    <div class="prototype">void        
+mono_install_compile_method (MonoCompileFunc func)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>func:</i></dt><dd> function to install</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This is a VM internal routine
+
+</div> <a name="api:mono_install_free_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_install_free_method</div>
+
+    <div class="prototype">void
+mono_install_free_method (MonoFreeMethodFunc func)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>func:</i></dt><dd> pointer to the MonoFreeMethodFunc used to release a method</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This is an internal VM routine, it is used for the engines to
+	 register a handler to release the resources associated with a method.
+	
+	 Methods are freed when no more references to the delegate that holds
+	 them are left.
+
+</div> <a name="api:mono_install_handler"></a>
+ <div class="api">
+    <div class="api-entry">mono_install_handler</div>
+
+    <div class="prototype">void
+mono_install_handler (MonoExceptionFunc func)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>func:</i></dt><dd> exception handler</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This is an internal JIT routine used to install the handler for exceptions
+	 being throwh.
+
+</div> <a name="api:mono_install_lookup_dynamic_token"></a>
+ <div class="api">
+    <div class="api-entry">mono_install_lookup_dynamic_token</div>
+
+    <div class="prototype">Prototype: mono_install_lookup_dynamic_token</div>
+<p />
+
+</div> <a name="api:mono_install_remoting_trampoline"></a>
+ <div class="api">
+    <div class="api-entry">mono_install_remoting_trampoline</div>
+
+    <div class="prototype">Prototype: mono_install_remoting_trampoline</div>
+<p />
+
+</div> <a name="api:mono_install_runtime_invoke"></a>
+ <div class="api">
+    <div class="api-entry">mono_install_runtime_invoke</div>
+
+    <div class="prototype">void
+mono_install_runtime_invoke (MonoInvokeFunc func)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>func:</i></dt><dd> Function to install</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This is a VM internal routine
+
+</div> <a name="api:mono_install_stack_walk"></a>
+ <div class="api">
+    <div class="api-entry">mono_install_stack_walk</div>
+
+    <div class="prototype">Prototype: mono_install_stack_walk</div>
+<p />
+
+</div> <a name="api:mono_install_thread_callbacks"></a>
+ <div class="api">
+    <div class="api-entry">mono_install_thread_callbacks</div>
+
+    <div class="prototype">Prototype: mono_install_thread_callbacks</div>
+<p />
+
+</div> <a name="api:mono_install_trampoline"></a>
+ <div class="api">
+    <div class="api-entry">mono_install_trampoline</div>
+
+    <div class="prototype">Prototype: mono_install_trampoline</div>
+<p />
+
+</div> <a name="api:mono_install_runtime_cleanup"></a>
+ <div class="api">
+    <div class="api-entry">mono_install_runtime_cleanup</div>
+
+    <div class="prototype">Prototype: mono_install_runtime_cleanup</div>
+<p />
+
+</div> <a name="api:mono_install_assembly_postload_refonly_search_hook"></a>
+ <div class="api">
+    <div class="api-entry">mono_install_assembly_postload_refonly_search_hook</div>
+
+    <div class="prototype">Prototype: mono_install_assembly_postload_refonly_search_hook</div>
+<p />
+
+</div> <a name="api:mono_install_assembly_postload_search_hook"></a>
+ <div class="api">
+    <div class="api-entry">mono_install_assembly_postload_search_hook</div>
+
+    <div class="prototype">Prototype: mono_install_assembly_postload_search_hook</div>
+<p />
+
+</div> <a name="api:mono_install_assembly_refonly_preload_hook"></a>
+ <div class="api">
+    <div class="api-entry">mono_install_assembly_refonly_preload_hook</div>
+
+    <div class="prototype">Prototype: mono_install_assembly_refonly_preload_hook</div>
+<p />
+
+</div> <a name="api:mono_install_assembly_refonly_search_hook"></a>
+ <div class="api">
+    <div class="api-entry">mono_install_assembly_refonly_search_hook</div>
+
+    <div class="prototype">Prototype: mono_install_assembly_refonly_search_hook</div>
+<p />
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-counters.html b/docs/deploy/mono-api-counters.html
new file mode 100644
index 0000000..886c38a
--- /dev/null
+++ b/docs/deploy/mono-api-counters.html
@@ -0,0 +1,126 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-counters.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h2>Counters</h2>
+	
+	<p />Counters is a Mono API for flexible statistics collection
+	and is used to track different events inside the JIT.
+
+        <p />You would typically register an address with the
+        <tt>mono_counters_register</tt> routine and increment the
+        counters from your application as you go.   At the end of the
+        program you would call mono_counters_dump which will display
+        all the registered counters.
+
+	<p />If you need more complicated counter computation, a
+        function can be provided instead of an address.  In that case
+        the <tt>MONO_COUNTER_CALLBACK</tt> flag must be ored in the
+        type request. 
+
+	<p />The types that can be rendered are:
+		
+<pre>
+       MONO_COUNTER_INT
+       MONO_COUNTER_UINT
+       MONO_COUNTER_WORD
+       MONO_COUNTER_LONG
+       MONO_COUNTER_ULONG
+       MONO_COUNTER_DOUBLE
+       MONO_COUNTER_STRING
+</pre>
+	
+	<p />To organize the output, you register also a section where
+	the counter will be displayed, or one of the following values
+	when you register your counter:
+
+<pre>
+
+       MONO_COUNTER_JIT
+       MONO_COUNTER_GC
+       MONO_COUNTER_METADATA
+       MONO_COUNTER_GENERICS
+       MONO_COUNTER_SECURITY
+</pre>
+	
+ <a name="api:mono_counters_dump"></a>
+ <div class="api">
+    <div class="api-entry">mono_counters_dump</div>
+
+    <div class="prototype">void
+mono_counters_dump (int section_mask, FILE *outfile)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>section_mask:</i></dt><dd> The sections to dump counters for</dd><dt><i>outfile:</i></dt><dd> a FILE to dump the results to</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Displays the counts of all the enabled counters registered. 
+
+</div> <a name="api:mono_counters_enable"></a>
+ <div class="api">
+    <div class="api-entry">mono_counters_enable</div>
+
+    <div class="prototype">void
+mono_counters_enable (int section_mask)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>section_mask:</i></dt><dd> a mask listing the sections that will be displayed</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This is used to track which counters will be displayed.
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-debug.html b/docs/deploy/mono-api-debug.html
new file mode 100644
index 0000000..a8934ce
--- /dev/null
+++ b/docs/deploy/mono-api-debug.html
@@ -0,0 +1,327 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-debug.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+ <a name="api:mono_debug_il_offset_from_address"></a>
+ <div class="api">
+    <div class="api-entry">mono_debug_il_offset_from_address</div>
+
+    <div class="prototype">Prototype: mono_debug_il_offset_from_address</div>
+<p />
+
+</div> <a name="api:mono_debug_open_mono_symbol_file"></a>
+ <div class="api">
+    <div class="api-entry">mono_debug_open_mono_symbol_file</div>
+
+    <div class="prototype">Prototype: mono_debug_open_mono_symbol_file</div>
+<p />
+
+</div> <a name="api:mono_debug_source_location_from_address"></a>
+ <div class="api">
+    <div class="api-entry">mono_debug_source_location_from_address</div>
+
+    <div class="prototype">Prototype: mono_debug_source_location_from_address</div>
+<p />
+
+</div> <a name="api:mono_debug_source_location_from_il_offset"></a>
+ <div class="api">
+    <div class="api-entry">mono_debug_source_location_from_il_offset</div>
+
+    <div class="prototype">Prototype: mono_debug_source_location_from_il_offset</div>
+<p />
+
+</div> <a name="api:mono_debug_add_aot_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_debug_add_aot_method</div>
+
+    <div class="prototype">Prototype: mono_debug_add_aot_method</div>
+<p />
+
+</div> <a name="api:mono_debug_add_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_debug_add_method</div>
+
+    <div class="prototype">Prototype: mono_debug_add_method</div>
+<p />
+
+</div> <a name="api:_mono_debug_address_from_il_offset"></a>
+ <div class="api">
+    <div class="api-entry">_mono_debug_address_from_il_offset</div>
+
+    <div class="prototype">Prototype: _mono_debug_address_from_il_offset</div>
+<p />
+
+</div> <a name="api:mono_debug_address_from_il_offset"></a>
+ <div class="api">
+    <div class="api-entry">mono_debug_address_from_il_offset</div>
+
+    <div class="prototype">Prototype: mono_debug_address_from_il_offset</div>
+<p />
+
+</div> <a name="api:mono_debug_add_wrapper"></a>
+ <div class="api">
+    <div class="api-entry">mono_debug_add_wrapper</div>
+
+    <div class="prototype">Prototype: mono_debug_add_wrapper</div>
+<p />
+
+</div> <a name="api:mono_debug_close_mono_symbol_file"></a>
+ <div class="api">
+    <div class="api-entry">mono_debug_close_mono_symbol_file</div>
+
+    <div class="prototype">Prototype: mono_debug_close_mono_symbol_file</div>
+<p />
+
+</div> <a name="api:mono_debug_find_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_debug_find_method</div>
+
+    <div class="prototype">Prototype: mono_debug_find_method</div>
+<p />
+
+</div> <a name="api:mono_debug_find_source_location"></a>
+ <div class="api">
+    <div class="api-entry">mono_debug_find_source_location</div>
+
+    <div class="prototype">Prototype: mono_debug_find_source_location</div>
+<p />
+
+</div> <a name="api:mono_debug_using_mono_debugger"></a>
+ <div class="api">
+    <div class="api-entry">mono_debug_using_mono_debugger</div>
+
+    <div class="prototype">Prototype: mono_debug_using_mono_debugger</div>
+<p />
+
+
+</div><h3>Mono Debugger Interface</h3>
+
+	<p />These are methods that are invoked by the debugger at
+	runtime.
+	
+ <a name="api:mono_debugger_add_builtin_types"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_add_builtin_types</div>
+
+    <div class="prototype">Prototype: mono_debugger_add_builtin_types</div>
+<p />
+
+</div> <a name="api:mono_debugger_add_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_add_method</div>
+
+    <div class="prototype">Prototype: mono_debugger_add_method</div>
+<p />
+
+</div> <a name="api:mono_debugger_add_symbol_file"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_add_symbol_file</div>
+
+    <div class="prototype">Prototype: mono_debugger_add_symbol_file</div>
+<p />
+
+</div> <a name="api:mono_debugger_add_type"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_add_type</div>
+
+    <div class="prototype">Prototype: mono_debugger_add_type</div>
+<p />
+
+</div> <a name="api:mono_debugger_add_wrapper"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_add_wrapper</div>
+
+    <div class="prototype">Prototype: mono_debugger_add_wrapper</div>
+<p />
+
+</div> <a name="api:mono_debugger_breakpoint_callback"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_breakpoint_callback</div>
+
+    <div class="prototype">Prototype: mono_debugger_breakpoint_callback</div>
+<p />
+
+</div> <a name="api:mono_debugger_check_runtime_version"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_check_runtime_version</div>
+
+    <div class="prototype">Prototype: mono_debugger_check_runtime_version</div>
+<p />
+
+</div> <a name="api:mono_debugger_create_notification_function"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_create_notification_function</div>
+
+    <div class="prototype">Prototype: mono_debugger_create_notification_function</div>
+<p />
+
+</div> <a name="api:mono_debugger_event"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_event</div>
+
+    <div class="prototype">Prototype: mono_debugger_event</div>
+<p />
+
+</div> <a name="api:_mono_debugger_get_symfile"></a>
+ <div class="api">
+    <div class="api-entry">_mono_debugger_get_symfile</div>
+
+    <div class="prototype">Prototype: _mono_debugger_get_symfile</div>
+<p />
+
+</div> <a name="api:mono_debugger_handle_exception"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_handle_exception</div>
+
+    <div class="prototype">Prototype: mono_debugger_handle_exception</div>
+<p />
+
+</div> <a name="api:mono_debugger_insert_breakpoint_full"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_insert_breakpoint_full</div>
+
+    <div class="prototype">Prototype: mono_debugger_insert_breakpoint_full</div>
+<p />
+
+</div> <a name="api:mono_debugger_insert_breakpoint"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_insert_breakpoint</div>
+
+    <div class="prototype">Prototype: mono_debugger_insert_breakpoint</div>
+<p />
+
+</div> <a name="api:mono_debugger_lock"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_lock</div>
+
+    <div class="prototype">Prototype: mono_debugger_lock</div>
+<p />
+
+</div> <a name="api:mono_debugger_lookup_assembly"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_lookup_assembly</div>
+
+    <div class="prototype">Prototype: mono_debugger_lookup_assembly</div>
+<p />
+
+</div> <a name="api:mono_debugger_lookup_type"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_lookup_type</div>
+
+    <div class="prototype">Prototype: mono_debugger_lookup_type</div>
+<p />
+
+</div> <a name="api:mono_debugger_method_has_breakpoint"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_method_has_breakpoint</div>
+
+    <div class="prototype">Prototype: mono_debugger_method_has_breakpoint</div>
+<p />
+
+</div> <a name="api:mono_debugger_remove_breakpoint"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_remove_breakpoint</div>
+
+    <div class="prototype">Prototype: mono_debugger_remove_breakpoint</div>
+<p />
+
+</div> <a name="api:mono_debugger_runtime_invoke"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_runtime_invoke</div>
+
+    <div class="prototype">Prototype: mono_debugger_runtime_invoke</div>
+<p />
+
+</div> <a name="api:mono_debugger_start_add_type"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_start_add_type</div>
+
+    <div class="prototype">Prototype: mono_debugger_start_add_type</div>
+<p />
+
+</div> <a name="api:mono_debugger_throw_exception"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_throw_exception</div>
+
+    <div class="prototype">Prototype: mono_debugger_throw_exception</div>
+<p />
+
+</div> <a name="api:mono_debugger_unhandled_exception"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_unhandled_exception</div>
+
+    <div class="prototype">Prototype: mono_debugger_unhandled_exception</div>
+<p />
+
+</div> <a name="api:mono_debugger_unlock"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_unlock</div>
+
+    <div class="prototype">Prototype: mono_debugger_unlock</div>
+<p />
+
+</div> <a name="api:mono_debugger_finalize_threads"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_finalize_threads</div>
+
+    <div class="prototype">Prototype: mono_debugger_finalize_threads</div>
+<p />
+
+</div> <a name="api:mono_debugger_main"></a>
+ <div class="api">
+    <div class="api-entry">mono_debugger_main</div>
+
+    <div class="prototype">Prototype: mono_debugger_main</div>
+<p />
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-decimal.html b/docs/deploy/mono-api-decimal.html
new file mode 100644
index 0000000..bdfd083
--- /dev/null
+++ b/docs/deploy/mono-api-decimal.html
@@ -0,0 +1,185 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-decimal.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h1>Decimal Support</h1>
+
+	<p />You can use the mono_decimal functions to access and
+	manipulate <tt>System.Decimal</tt> types from C.
+	
+ <a name="api:mono_decimal2double"></a>
+ <div class="api">
+    <div class="api-entry">mono_decimal2double</div>
+
+    <div class="prototype">Prototype: mono_decimal2double</div>
+<p />
+
+</div> <a name="api:mono_decimal2Int64"></a>
+ <div class="api">
+    <div class="api-entry">mono_decimal2Int64</div>
+
+    <div class="prototype">gint32 mono_decimal2Int64(/*[In]*/decimal_repr* pA, gint64* pResult)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>pA:</i></dt><dd></dd><dt><i>pResult:</i></dt><dd></dd></blockquote>
+<b>Remarks</b>
+<p />	 converts a decimal to an Int64 without rounding 
+
+</div> <a name="api:mono_decimal2string"></a>
+ <div class="api">
+    <div class="api-entry">mono_decimal2string</div>
+
+    <div class="prototype">gint32 mono_decimal2string(/*[In]*/decimal_repr* pA, gint32 digits, gint32 decimals,
+                                   MonoArray* pArray, gint32 bufSize, gint32* pDecPos, gint32* pSign)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 @ 
+	 returns minimal number of digit string to represent decimal
+	 No leading or trailing zeros !
+	 Examples:
+	 *pA == 0            =>   buf = "", *pDecPos = 1, *pSign = 0
+	 *pA == 12.34        =>   buf = "1234", *pDecPos = 2, *pSign = 0
+	 *pA == -1000.0000   =>   buf = "1", *pDecPos = 4, *pSign = 1
+	 *pA == -0.00000076  =>   buf = "76", *pDecPos = -6, *pSign = 0
+	
+<p />
+	 Parameters:
+	    pA         decimal instance to convert     
+	    digits      0: gets at most <digits> digits, rounded according to banker's rule if necessary
+	    decimals   only used if digits = 0: number of decimal places
+	    buf        pointer to result buffer
+	    bufSize    size of buffer
+	    pDecPos    receives insert position of decimal point relative to start of buffer
+	    pSign      receives sign
+
+</digits></div> <a name="api:mono_decimal2UInt64"></a>
+ <div class="api">
+    <div class="api-entry">mono_decimal2UInt64</div>
+
+    <div class="prototype">gint32 mono_decimal2UInt64(/*[In]*/decimal_repr* pA, guint64* pResult)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 <i>pA</i> 
+	 <i>pResult</i>
+	 converts a decimal to an UInt64 without rounding
+
+</div> <a name="api:mono_decimalCompare"></a>
+ <div class="api">
+    <div class="api-entry">mono_decimalCompare</div>
+
+    <div class="prototype">Prototype: mono_decimalCompare</div>
+<p />
+
+</div> <a name="api:mono_decimalDiv"></a>
+ <div class="api">
+    <div class="api-entry">mono_decimalDiv</div>
+
+    <div class="prototype">Prototype: mono_decimalDiv</div>
+<p />
+
+</div> <a name="api:mono_decimalFloorAndTrunc"></a>
+ <div class="api">
+    <div class="api-entry">mono_decimalFloorAndTrunc</div>
+
+    <div class="prototype">Prototype: mono_decimalFloorAndTrunc</div>
+<p />
+
+</div> <a name="api:mono_decimalIncr"></a>
+ <div class="api">
+    <div class="api-entry">mono_decimalIncr</div>
+
+    <div class="prototype">Prototype: mono_decimalIncr</div>
+<p />
+
+</div> <a name="api:mono_decimalIntDiv"></a>
+ <div class="api">
+    <div class="api-entry">mono_decimalIntDiv</div>
+
+    <div class="prototype">Prototype: mono_decimalIntDiv</div>
+<p />
+
+</div> <a name="api:mono_decimalMult"></a>
+ <div class="api">
+    <div class="api-entry">mono_decimalMult</div>
+
+    <div class="prototype">Prototype: mono_decimalMult</div>
+<p />
+
+</div> <a name="api:mono_decimalRound"></a>
+ <div class="api">
+    <div class="api-entry">mono_decimalRound</div>
+
+    <div class="prototype">Prototype: mono_decimalRound</div>
+<p />
+
+</div> <a name="api:mono_decimalSetExponent"></a>
+ <div class="api">
+    <div class="api-entry">mono_decimalSetExponent</div>
+
+    <div class="prototype">Prototype: mono_decimalSetExponent</div>
+<p />
+
+</div> <a name="api:mono_double2decimal"></a>
+ <div class="api">
+    <div class="api-entry">mono_double2decimal</div>
+
+    <div class="prototype">Prototype: mono_double2decimal</div>
+<p />
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-domains.html b/docs/deploy/mono-api-domains.html
new file mode 100644
index 0000000..b8044ab
--- /dev/null
+++ b/docs/deploy/mono-api-domains.html
@@ -0,0 +1,315 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-domains.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h2>Application Domains</h2>
+
+<h3>Synopsis</h3>
+
+<div class="header">
+#include <metadata/appdomain.h>
+
+/* Managed AppDomain */
+typedef struct _MonoAppDomain MonoAppDomain;
+
+/* Unmanaged representation */
+typedef struct _MonoDomain MonoDomain;
+
+/* Represents System.Runtime.Remoting.Contexts.Context */
+typedef struct _MonoAppContext MonoAppContext
+MonoAssembly*           <a href="#api:mono_domain_assembly_open">mono_domain_assembly_open</a>    (MonoDomain *domain, 
+                                                      const char *name);
+                        <a href="#api:mono_domain_create"></a>                             
+gboolean                <a href="#api:mono_domain_finalize">mono_domain_finalize</a>         (MonoDomain *domain, 
+                                                      guint32 timeout) ;
+                        <a href="#api:mono_domain_foreach"></a>                             
+                        <a href="#api:mono_domain_free"></a>                             
+                        <a href="#api:mono_domain_get_by_id"></a>                             
+MonoDomain*             <a href="#api:mono_domain_get_id">mono_domain_get_by_id</a>        (gint32 domainid) ;
+MonoDomain*             <a href="#api:mono_domain_get">mono_domain_get</a>              ();
+gboolean                <a href="#api:mono_domain_has_type_resolve">mono_domain_has_type_resolve</a> (MonoDomain *domain);
+                        <a href="#api:mono_domain_is_unloading"></a>                             
+void                    <a href="#api:mono_domain_set_internal">mono_domain_set_internal</a>     (MonoDomain *domain);
+gboolean                <a href="#api:mono_domain_set">mono_domain_set</a>              (MonoDomain *domain, 
+                                                      gboolean force);
+MonoReflectionAssembly* <a href="#api:mono_domain_try_type_resolve">mono_domain_try_type_resolve</a> (MonoDomain *domain, 
+                                                      char *name, 
+                                                      MonoObject *tb);
+                        <a href="#api:mono_domain_get_tls_key"></a>                             
+gboolean                <a href="#api:mono_domain_owns_vtable_slot">mono_domain_owns_vtable_slot</a> (MonoDomain *domain, 
+                                                      gpointer vtable_slot);
+                        <a href="#api:mono_context_get"></a>                             
+                        <a href="#api:mono_context_set"></a>                             
+
+</div>
+
+	<p />Application domains are used to isolate multiple
+	applications on a single Mono virtual machine.  They are
+	conceptually similiar to processes, the difference is that
+	processes are managed by the operating system, while
+	application domains are managed by the Mono virtual machine.
+
+	<p />For more information on applications domains see the <a href="http://www.gotdotnet.com/team/clr/AppdomainFAQ.aspx">AppDomain FAQ</a>.
+		
+	<p />The <tt>MonoDomain</tt> is the unmanaged representation of
+	the <a href="http://www.mono-project.com/monodoc/T:System.AppDomain">System.AppDomain</a>
+	managed type, while the <tt>MonoAppDomain</tt> type represents
+	the managed version (<tt>MonoAppDomain</tt> has a pointer to
+	a <tt>MonoDomain</tt>).
+
+ <a name="api:mono_domain_assembly_open"></a>
+ <div class="api">
+    <div class="api-entry">mono_domain_assembly_open</div>
+
+    <div class="prototype">MonoAssembly*
+mono_domain_assembly_open (MonoDomain *domain, const char *name)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>domain:</i></dt><dd> the application domain</dd><dt><i>name:</i></dt><dd> file name of the assembly</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 fixme: maybe we should integrate this with mono_assembly_open ??
+
+</div> <a name="api:mono_domain_create"></a>
+ <div class="api">
+    <div class="api-entry">mono_domain_create</div>
+
+    <div class="prototype">Prototype: mono_domain_create</div>
+<p />
+
+</div> <a name="api:mono_domain_finalize"></a>
+ <div class="api">
+    <div class="api-entry">mono_domain_finalize</div>
+
+    <div class="prototype">
+gboolean
+mono_domain_finalize (MonoDomain *domain, guint32 timeout) 
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>domain:</i></dt><dd> the domain to finalize</dd><dt><i>timeout:</i></dt><dd> msects to wait for the finalization to complete, -1 to wait indefinitely</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  TRUE if succeeded, FALSE if there was a timeout
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	  Request finalization of all finalizable objects inside <i>domain</i>. Wait
+	 <i>timeout</i> msecs for the finalization to complete.
+	
+
+</div> <a name="api:mono_domain_foreach"></a>
+ <div class="api">
+    <div class="api-entry">mono_domain_foreach</div>
+
+    <div class="prototype">Prototype: mono_domain_foreach</div>
+<p />
+
+</div> <a name="api:mono_domain_free"></a>
+ <div class="api">
+    <div class="api-entry">mono_domain_free</div>
+
+    <div class="prototype">Prototype: mono_domain_free</div>
+<p />
+
+</div> <a name="api:mono_domain_get_by_id"></a>
+ <div class="api">
+    <div class="api-entry">mono_domain_get_by_id</div>
+
+    <div class="prototype">Prototype: mono_domain_get_by_id</div>
+<p />
+
+</div> <a name="api:mono_domain_get_id"></a>
+ <div class="api">
+    <div class="api-entry">mono_domain_get_id</div>
+
+    <div class="prototype">MonoDomain* 
+mono_domain_get_by_id (gint32 domainid) 
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>domainid:</i></dt><dd> the ID</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the a domain for a specific domain id.
+</blockquote>
+
+</div> <a name="api:mono_domain_get"></a>
+ <div class="api">
+    <div class="api-entry">mono_domain_get</div>
+
+    <div class="prototype">MonoDomain*
+mono_domain_get ()
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  the current domain, to obtain the root domain use
+
+	 mono_get_root_domain().</blockquote>
+
+</div> <a name="api:mono_domain_has_type_resolve"></a>
+ <div class="api">
+    <div class="api-entry">mono_domain_has_type_resolve</div>
+
+    <div class="prototype">gboolean
+mono_domain_has_type_resolve (MonoDomain *domain)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>domain:</i></dt><dd> application domains being looked up</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Returns true if the AppDomain.TypeResolve field has been
+	 set.
+
+</div> <a name="api:mono_domain_is_unloading"></a>
+ <div class="api">
+    <div class="api-entry">mono_domain_is_unloading</div>
+
+    <div class="prototype">Prototype: mono_domain_is_unloading</div>
+<p />
+
+</div> <a name="api:mono_domain_set_internal"></a>
+ <div class="api">
+    <div class="api-entry">mono_domain_set_internal</div>
+
+    <div class="prototype">void
+mono_domain_set_internal (MonoDomain *domain)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>domain:</i></dt><dd> the new domain</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Sets the current domain to <i>domain</i>.
+
+</div> <a name="api:mono_domain_set"></a>
+ <div class="api">
+    <div class="api-entry">mono_domain_set</div>
+
+    <div class="prototype">gboolean
+mono_domain_set (MonoDomain *domain, gboolean force)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>domain:</i></dt><dd> domain</dd><dt><i>force:</i></dt><dd> force setting.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	 
+
+	   TRUE on success;
+	   FALSE if the domain is unloaded</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Set the current appdomain to <i>domain</i>. If <i>force</i> is set, set it even
+	 if it is being unloaded.
+	
+
+</div> <a name="api:mono_domain_try_type_resolve"></a>
+ <div class="api">
+    <div class="api-entry">mono_domain_try_type_resolve</div>
+
+    <div class="prototype">MonoReflectionAssembly*
+mono_domain_try_type_resolve (MonoDomain *domain, char *name, MonoObject *tb)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>domain:</i></dt><dd> application domainwhere the name where the type is going to be resolved</dd><dt><i>name:</i></dt><dd> the name of the type to resolve or NULL.</dd><dt><i>tb:</i></dt><dd> A System.Reflection.Emit.TypeBuilder, used if name is NULL.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  A MonoReflectionAssembly or NULL if not found
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 This routine invokes the internal System.AppDomain.DoTypeResolve and returns
+	 the assembly that matches name.
+	
+	 If <i>name</i> is null, the value of ((TypeBuilder)tb).FullName is used instead
+	
+
+</div> <a name="api:mono_domain_get_tls_key"></a>
+ <div class="api">
+    <div class="api-entry">mono_domain_get_tls_key</div>
+
+    <div class="prototype">Prototype: mono_domain_get_tls_key</div>
+<p />
+
+</div> <a name="api:mono_domain_owns_vtable_slot"></a>
+ <div class="api">
+    <div class="api-entry">mono_domain_owns_vtable_slot</div>
+
+    <div class="prototype">gboolean
+mono_domain_owns_vtable_slot (MonoDomain *domain, gpointer vtable_slot)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+	  Returns whenever VTABLE_SLOT is inside a vtable which belongs to DOMAIN.
+
+
+</div><h3>Contexts</h3>
+
+ <a name="api:mono_context_get"></a>
+ <div class="api">
+    <div class="api-entry">mono_context_get</div>
+
+    <div class="prototype">Prototype: mono_context_get</div>
+<p />
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-dynamic-codegen.html b/docs/deploy/mono-api-dynamic-codegen.html
new file mode 100644
index 0000000..91837d4
--- /dev/null
+++ b/docs/deploy/mono-api-dynamic-codegen.html
@@ -0,0 +1,353 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-dynamic-codegen.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h2>Dynamic Code Generation</h2>
+
+	<p />The dynamic code generation interface inside the Mono
+	runtime is similar to the API exposed by
+	System.Reflection.Emit.
+
+	<p />This interface is used by Mono internally to generate code
+	on the flight in a cross-platform fashion.  For example,
+	P/Invoke marshalling in Mono is implemented in terms of this
+	interface, but it is also used in various other parts of the
+	runtime.
+
+	<p />Unlike Reflection.Emit, the dynamic code generation
+	interface does not start with an assembly builder.   The code
+	generation interface starts directly at the method level,
+	which is represented by a pointer to the MonoMethodBuilder
+	structure.
+
+	<p />To JIT this method, the process is this:
+
+	<ul>
+		<li>Create a <tt>MonoMethodBuilder</tt> object using
+		the <tt>mono_mb_new</tt> method.  The method's class
+		is specified as the first argument.
+
+		<li>Create the method signature, using
+		<tt>mono_metadata_signature_alloc</tt>.  The call
+		takes the number of arguments that the method takes.
+		Then you must initialize the types for each one of the
+		parameters.
+
+		<li>Emit the CIL code, using one of the
+		<tt>mono_mb_emit_*</tt> functions.   There are some
+		helper routines that you can use.
+
+		<li>Create the <tt>MonoMethod</tt> from the
+		<tt>MethodBuilder</tt> using
+		<tt>mono_mb_create_method</tt>.
+
+		<li>Release the <tt>MonoMethodBuilder</tt> resources
+		using mono_mb_free. 
+	</li></li></li></li></li></ul>
+
+	<p />The result of this process is a <tt>MonoMethod</tt> which
+	can be called using <tt><a href="api:mono_create_jit_trampoline">mono_create_jit_trampoline</a></tt>
+	routine or can be passed to any other functions that require
+	the MonoMethod.
+
+	<p />Example:
+
+	<pre>
+MonoMethod *adder ()
+{
+    MonoMethodBuilder *mb;
+    MonoMethodSignature *sig;
+    MonoMethod *method;
+    
+    mb = mono_mb_new (mono_defaults.object_class, "adder", MONO_WRAPPER_NONE);
+
+    /* Setup method signature */
+    sig = mono_metadata_signature_alloc (2);
+    sig->ret = &mono_get_int32_class ()->byval_arg;
+    sig->params [0] = &mono_get_int32_class ()->byval_arg;
+    sig->params [1] = &mono_defaults.int32_class->byval_arg;
+
+    /* Emit CIL code */
+    mono_mb_emit_ldarg (mb, 0);
+    mono_mb_emit_ldarg (mb, 1);
+    mono_mb_emit_byte (mb, CEE_ADD);
+    mono_mb_emit_byte (mb, CEE_RET);
+
+    /* Get the method */
+    method = mono_mb_create_method (mb, sig, max_stack);
+    
+    /* Cleanup */
+    mono_mb-free (mb);
+    return method;
+}
+	</pre>
+	
+ <a name="api:mono_mb_new"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_new</div>
+
+    <div class="prototype">Prototype: mono_mb_new</div>
+<p />
+
+
+	<p />The possible values for the <i>type</i> argument are:
+
+<pre>
+        MONO_WRAPPER_NONE
+        MONO_WRAPPER_DELEGATE_INVOKE
+        MONO_WRAPPER_DELEGATE_BEGIN_INVOKE
+        MONO_WRAPPER_DELEGATE_END_INVOKE
+        MONO_WRAPPER_RUNTIME_INVOKE
+        MONO_WRAPPER_NATIVE_TO_MANAGED
+        MONO_WRAPPER_MANAGED_TO_NATIVE
+        MONO_WRAPPER_REMOTING_INVOKE
+        MONO_WRAPPER_REMOTING_INVOKE_WITH_CHECK
+        MONO_WRAPPER_XDOMAIN_INVOKE
+        MONO_WRAPPER_XDOMAIN_DISPATCH
+        MONO_WRAPPER_LDFLD
+        MONO_WRAPPER_STFLD
+        MONO_WRAPPER_LDFLD_REMOTE
+        MONO_WRAPPER_STFLD_REMOTE
+        MONO_WRAPPER_SYNCHRONIZED
+        MONO_WRAPPER_DYNAMIC_METHOD
+        MONO_WRAPPER_ISINST
+        MONO_WRAPPER_CASTCLASS
+        MONO_WRAPPER_PROXY_ISINST
+        MONO_WRAPPER_STELEMREF
+        MONO_WRAPPER_UNBOX
+        MONO_WRAPPER_LDFLDA
+        MONO_WRAPPER_UNKNOWN
+</pre>
+
+</div> <a name="api:mono_mb_add_data"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_add_data</div>
+
+    <div class="prototype">Prototype: mono_mb_add_data</div>
+<p />
+
+</div> <a name="api:mono_mb_add_local"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_add_local</div>
+
+    <div class="prototype">Prototype: mono_mb_add_local</div>
+<p />
+
+</div> <a name="api:mono_mb_create_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_create_method</div>
+
+    <div class="prototype">MonoMethod*
+mono_mb_create_method (MonoMethodBuilder *mb, MonoMethodSignature *signature, int max_stack)
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  the newly created method.
+
+	
+	 LOCKING: Takes the loader lock.</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Create a MonoMethod from this method builder.
+
+</div> <a name="api:mono_mb_emit_add_to_local"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_emit_add_to_local</div>
+
+    <div class="prototype">Prototype: mono_mb_emit_add_to_local</div>
+<p />
+
+</div> <a name="api:mono_mb_emit_branch"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_emit_branch</div>
+
+    <div class="prototype">Prototype: mono_mb_emit_branch</div>
+<p />
+
+</div> <a name="api:mono_mb_emit_byte"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_emit_byte</div>
+
+    <div class="prototype">Prototype: mono_mb_emit_byte</div>
+<p />
+
+</div> <a name="api:mono_mb_emit_exception"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_emit_exception</div>
+
+    <div class="prototype">Prototype: mono_mb_emit_exception</div>
+<p />
+
+</div> <a name="api:mono_mb_emit_i2"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_emit_i2</div>
+
+    <div class="prototype">Prototype: mono_mb_emit_i2</div>
+<p />
+
+</div> <a name="api:mono_mb_emit_i4"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_emit_i4</div>
+
+    <div class="prototype">Prototype: mono_mb_emit_i4</div>
+<p />
+
+</div> <a name="api:mono_mb_emit_icon"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_emit_icon</div>
+
+    <div class="prototype">Prototype: mono_mb_emit_icon</div>
+<p />
+
+</div> <a name="api:mono_mb_emit_ldarg_addr"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_emit_ldarg_addr</div>
+
+    <div class="prototype">Prototype: mono_mb_emit_ldarg_addr</div>
+<p />
+
+</div> <a name="api:mono_mb_emit_ldarg"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_emit_ldarg</div>
+
+    <div class="prototype">Prototype: mono_mb_emit_ldarg</div>
+<p />
+
+</div> <a name="api:mono_mb_emit_ldflda"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_emit_ldflda</div>
+
+    <div class="prototype">Prototype: mono_mb_emit_ldflda</div>
+<p />
+
+</div> <a name="api:mono_mb_emit_ldloc_addr"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_emit_ldloc_addr</div>
+
+    <div class="prototype">Prototype: mono_mb_emit_ldloc_addr</div>
+<p />
+
+</div> <a name="api:mono_mb_emit_ldloc"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_emit_ldloc</div>
+
+    <div class="prototype">Prototype: mono_mb_emit_ldloc</div>
+<p />
+
+</div> <a name="api:mono_mb_emit_ldstr"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_emit_ldstr</div>
+
+    <div class="prototype">Prototype: mono_mb_emit_ldstr</div>
+<p />
+
+</div> <a name="api:mono_mb_emit_managed_call"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_emit_managed_call</div>
+
+    <div class="prototype">Prototype: mono_mb_emit_managed_call</div>
+<p />
+
+</div> <a name="api:mono_mb_emit_native_call"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_emit_native_call</div>
+
+    <div class="prototype">Prototype: mono_mb_emit_native_call</div>
+<p />
+
+</div> <a name="api:mono_mb_emit_stloc"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_emit_stloc</div>
+
+    <div class="prototype">Prototype: mono_mb_emit_stloc</div>
+<p />
+
+</div> <a name="api:mono_mb_free"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_free</div>
+
+    <div class="prototype">Prototype: mono_mb_free</div>
+<p />
+
+
+</div> <a name="api:mono_mb_patch_addr"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_patch_addr</div>
+
+    <div class="prototype">Prototype: mono_mb_patch_addr</div>
+<p />
+
+</div> <a name="api:mono_mb_patch_addr_s"></a>
+ <div class="api">
+    <div class="api-entry">mono_mb_patch_addr_s</div>
+
+    <div class="prototype">Prototype: mono_mb_patch_addr_s</div>
+<p />
+
+		
+</div> <a name="api:mono_metadata_signature_alloc"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_signature_alloc</div>
+
+    <div class="prototype">Prototype: mono_metadata_signature_alloc</div>
+<p />
+
+</div> <a name="api:mono_metadata_signature_dup"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_signature_dup</div>
+
+    <div class="prototype">Prototype: mono_metadata_signature_dup</div>
+<p />
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-embedding.html b/docs/deploy/mono-api-embedding.html
new file mode 100644
index 0000000..ec7f4be
--- /dev/null
+++ b/docs/deploy/mono-api-embedding.html
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-embedding.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h2>Embedding Mono</h2>
+
+ <a name="api:mono_jit_init"></a>
+ <div class="api">
+    <div class="api-entry">mono_jit_init</div>
+
+    <div class="prototype">Prototype: mono_jit_init</div>
+<p />
+
+</div> <a name="api:mono_set_dirs"></a>
+ <div class="api">
+    <div class="api-entry">mono_set_dirs</div>
+
+    <div class="prototype">void
+mono_set_dirs (const char *assembly_dir, const char *config_dir)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>assembly_dir:</i></dt><dd> the base directory for assemblies</dd><dt><i>config_dir:</i></dt><dd> the base directory for configuration files</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This routine is used internally and by developers embedding
+	 the runtime into their own applications.
+	
+	 There are a number of cases to consider: Mono as a system-installed
+	 package that is available on the location preconfigured or Mono in
+	 a relocated location.
+	
+	 If you are using a system-installed Mono, you can pass NULL
+	 to both parameters.  If you are not, you should compute both
+	 directory values and call this routine.
+	
+	 The values for a given PREFIX are:
+	
+	    assembly_dir: PREFIX/lib
+	    config_dir:   PREFIX/etc
+	
+	 Notice that embedders that use Mono in a relocated way must
+	 compute the location at runtime, as they will be in control
+	 of where Mono is installed.
+
+</div> <a name="api:mono_runtime_exec_main"></a>
+ <div class="api">
+    <div class="api-entry">mono_runtime_exec_main</div>
+
+    <div class="prototype">Prototype: mono_runtime_exec_main</div>
+<p />
+
+</div> <a name="api:mono_runtime_exec_managed_code"></a>
+ <div class="api">
+    <div class="api-entry">mono_runtime_exec_managed_code</div>
+
+    <div class="prototype">Prototype: mono_runtime_exec_managed_code</div>
+<p />
+
+
+</div> <a name="api:mono_jit_cleanup"></a>
+ <div class="api">
+    <div class="api-entry">mono_jit_cleanup</div>
+
+    <div class="prototype">Prototype: mono_jit_cleanup</div>
+<p />
+
+</div> <a name="api:mono_set_defaults"></a>
+ <div class="api">
+    <div class="api-entry">mono_set_defaults</div>
+
+    <div class="prototype">Prototype: mono_set_defaults</div>
+<p />
+
+
+</div><h3>Internal Calls</h3>
+
+	<p />The Mono runtime provides two mechanisms to expose C code
+	to the CIL universe: internal calls and native C
+	code. Internal calls are tightly integrated with the runtime,
+	and have the least overhead, as they use the same data types
+	that the runtime uses.
+
+	<p />The other option is to use the Platform Invoke (P/Invoke)
+	to call C code from the CIL universe, using the standard
+	P/Invoke mechanisms.
+
+	<p />To register an internal call, use this call you use the
+	<tt>mono_add_internal_call</tt> routine.
+
+<h4>Data Marshalling</h4>
+
+	<p />Managed objects are represented as <tt>MonoObject*</tt>
+	types.  Those objects that the runtime consumes directly have
+	more specific C definitions (for example strings are of type
+	<tt>MonoString *</tt>, delegates are of type
+	<tt>MonoDelegate*</tt> but they are still <tt>MonoObject
+	*</tt>s).
+
+	<p />As of Mono 1.2.x types defined in mscorlib.dll do not have
+	their fields reordered in any way.   But other libraries might
+	have their fields reordered.   In these cases, Managed
+	structures and objects have the same layout in the C# code as
+	they do in the unmanaged world.
+
+	<p />Structures defined outside corlib must have a specific
+	StructLayout definition, and have it set as sequential if you
+	plan on accessing these fields directly from C code.
+
+	<p /><b>Important</b> Internal calls do not provide support for
+	marshalling structures.  This means that any API calls that
+	take a structure (excluding the system types like int32,
+	int64, etc) must be passed as a pointer, in C# this means
+	passing the value as a "ref" or "out" parameter.
+
+ <a name="api:mono_add_internal_call"></a>
+ <div class="api">
+    <div class="api-entry">mono_add_internal_call</div>
+
+    <div class="prototype">Prototype: mono_add_internal_call</div>
+<p />
+
+
+</div><h3>Mono Runtime Configuration</h3>
+
+	<p />Certain features of the Mono runtime, like DLL mapping, are
+	available through a configuration file that is loaded at
+	runtime.   The default Mono implementation loads the
+	configuration file from <tt>$sysconfig/mono/config</tt>
+	(typically this is <tt>/etc/mono/config</tt>).
+
+	<p />See the <tt>mono-config(5)</tt> man page for more details
+	on what goes in this file.
+
+	<p />The following APIs expose this functionality:
+	
+ <a name="api:mono_config_parse"></a>
+ <div class="api">
+    <div class="api-entry">mono_config_parse</div>
+
+    <div class="prototype">void
+mono_config_parse (const char *filename)
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>filename:</i></dt><dd> the filename to load the configuration variables from.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Pass a NULL filename to parse the default config files
+	 (or the file in the MONO_CONFIG env var).
+
+</div> <a name="api:mono_config_parse_memory"></a>
+ <div class="api">
+    <div class="api-entry">mono_config_parse_memory</div>
+
+    <div class="prototype">void
+mono_config_parse_memory (const char *buffer)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>buffer:</i></dt><dd> a pointer to an string XML representation of the configuration</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Parses the configuration from a buffer
+
+
+</div><h3>Function Pointers</h3>
+
+	<p />To wrap a function pointer into something that the Mono
+	runtime can consume, you should use the mono_create_ftnptr.
+	This is only important if you plan on running on the IA64
+	architecture.   Otherwise you can just use the function
+	pointer address.
+	
+</body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-exc.html b/docs/deploy/mono-api-exc.html
new file mode 100644
index 0000000..99e852f
--- /dev/null
+++ b/docs/deploy/mono-api-exc.html
@@ -0,0 +1,710 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-exc.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h2>Exception Handling</h2>
+
+<div class="header">
+void           <a href="#api:mono_raise_exception">mono_raise_exception</a>                       (MonoException *ex) ;
+void           <a href="#api:mono_unhandled_exception">mono_unhandled_exception</a>                   (MonoObject *exc);
+void           <a href="#api:mono_print_unhandled_exception">mono_print_unhandled_exception</a>             (MonoObject *exc);
+gboolean       <a href="#api:mono_handle_exception">mono_handle_exception</a>                      (MonoContext *ctx, 
+                                                           gpointer obj, 
+                                                           gpointer original_ip, 
+                                                           gboolean test_only);
+MonoException* <a href="#api:mono_exception_from_name_domain">mono_exception_from_name_domain</a>            (MonoDomain *domain, 
+                                                           MonoImage *image, 
+                                                           ;
+MonoException* <a href="#api:mono_exception_from_name">mono_exception_from_name</a>                   (MonoImage *image, 
+                                                           const char *name_space;
+MonoException* <a href="#api:mono_exception_from_name_msg">mono_exception_from_name_msg</a>               (MonoImage *image, 
+                                                           const char *name_space;
+MonoException* <a href="#api:mono_exception_from_name_two_strings">mono_exception_from_name_two_strings</a>       (MonoImage *image, 
+                                                           const char *name_space;
+MonoException* <a href="#api:mono_get_exception_appdomain_unloaded">mono_get_exception_appdomain_unloaded</a>      (void);
+MonoException* <a href="#api:mono_get_exception_argument">mono_get_exception_argument</a>                (const char *arg, 
+                                                           const char *msg);
+MonoException* <a href="#api:mono_get_exception_argument_null">mono_get_exception_argument_null</a>           (const char *arg);
+MonoException* <a href="#api:mono_get_exception_argument_out_of_range">mono_get_exception_argument_out_of_range</a>   (const char *arg);
+MonoException* <a href="#api:mono_get_exception_arithmetic">mono_get_exception_arithmetic</a>              ();
+MonoException* <a href="#api:mono_get_exception_array_type_mismatch">mono_get_exception_array_type_mismatch</a>     ();
+MonoException* <a href="#api:mono_get_exception_bad_image_format">mono_get_exception_bad_image_format</a>        (const char *msg);
+MonoException* <a href="#api:mono_get_exception_cannot_unload_appdomain">mono_get_exception_cannot_unload_appdomain</a> (const char *msg);
+               <a href="#api:mono_get_exception_class"></a>                                           
+MonoException* <a href="#api:mono_get_exception_divide_by_zero">mono_get_exception_divide_by_zero</a>          ();
+MonoException* <a href="#api:mono_get_exception_execution_engine">mono_get_exception_execution_engine</a>        (const char *msg);
+MonoException* <a href="#api:mono_get_exception_file_not_found2">mono_get_exception_file_not_found2</a>         (const char *msg, 
+                                                           MonoString *fname);
+MonoException* <a href="#api:mono_get_exception_file_not_found">mono_get_exception_file_not_found</a>          (MonoString *fname);
+MonoException* <a href="#api:mono_get_exception_index_out_of_range">mono_get_exception_index_out_of_range</a>      ();
+MonoException* <a href="#api:mono_get_exception_invalid_cast">mono_get_exception_invalid_cast</a>            ();
+MonoException* <a href="#api:mono_get_exception_io">mono_get_exception_io</a>                      (const char *msg);
+MonoException* <a href="#api:mono_get_exception_missing_method">mono_get_exception_missing_method</a>          (const char *class_name, 
+                                                           const char *member_name);
+MonoException* <a href="#api:mono_get_exception_not_implemented">mono_get_exception_not_implemented</a>         (const char *msg);
+MonoException* <a href="#api:mono_get_exception_null_reference">mono_get_exception_null_reference</a>          ();
+MonoException* <a href="#api:mono_get_exception_overflow">mono_get_exception_overflow</a>                ();
+MonoException* <a href="#api:mono_get_exception_security">mono_get_exception_security</a>                ();
+MonoException* <a href="#api:mono_get_exception_serialization">mono_get_exception_serialization</a>           (const char *msg);
+MonoException* <a href="#api:mono_get_exception_stack_overflow">mono_get_exception_stack_overflow</a>          (void);
+MonoException* <a href="#api:mono_get_exception_synchronization_lock">mono_get_exception_synchronization_lock</a>    (const char *msg);
+MonoException* <a href="#api:mono_get_exception_thread_abort">mono_get_exception_thread_abort</a>            ();
+MonoException* <a href="#api:mono_get_exception_thread_state">mono_get_exception_thread_state</a>            (const char *msg);
+MonoException* <a href="#api:mono_get_exception_type_initialization">mono_get_exception_type_initialization</a>     (const gchar *type_name, 
+                                                           MonoException *inner);
+MonoException* <a href="#api:mono_get_exception_type_load">mono_get_exception_type_load</a>               (MonoString *class_name, 
+                                                           char *assembly_name);
+MonoException* <a href="#api:mono_get_exception_invalid_operation">mono_get_exception_invalid_operation</a>       (const char *msg);
+MonoException* <a href="#api:mono_get_exception_missing_field">mono_get_exception_missing_field</a>           (const char *class_name, 
+                                                           const char *member_name);
+MonoException* <a href="#api:mono_get_exception_not_supported">mono_get_exception_not_supported</a>           (const char *msg);
+MonoException* <a href="#api:mono_get_exception_reflection_type_load">mono_get_exception_reflection_type_load</a>    (MonoArray *types, 
+                                                           MonoArray *exceptions);
+
+</div>
+
+<h3>Raising and Catching exceptions</h3>
+
+ <a name="api:mono_raise_exception"></a>
+ <div class="api">
+    <div class="api-entry">mono_raise_exception</div>
+
+    <div class="prototype">void
+mono_raise_exception (MonoException *ex) 
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>ex:</i></dt><dd> exception object</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Signal the runtime that the exception <i>ex</i> has been raised in unmanaged code.
+
+</div> <a name="api:mono_unhandled_exception"></a>
+ <div class="api">
+    <div class="api-entry">mono_unhandled_exception</div>
+
+    <div class="prototype">void
+mono_unhandled_exception (MonoObject *exc)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>exc:</i></dt><dd> exception thrown</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This is a VM internal routine.
+	
+	 We call this function when we detect an unhandled exception
+	 in the default domain.
+	
+	 It invokes the * UnhandledException event in AppDomain or prints
+	 a warning to the console 
+
+</div> <a name="api:mono_print_unhandled_exception"></a>
+ <div class="api">
+    <div class="api-entry">mono_print_unhandled_exception</div>
+
+    <div class="prototype">void
+mono_print_unhandled_exception (MonoObject *exc)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>exc:</i></dt><dd> The exception</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Prints the unhandled exception.
+
+</div> <a name="api:mono_handle_exception"></a>
+ <div class="api">
+    <div class="api-entry">mono_handle_exception</div>
+
+    <div class="prototype">gboolean
+mono_handle_exception (MonoContext *ctx, gpointer obj, gpointer original_ip, gboolean test_only)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>ctx:</i></dt><dd> saved processor state</dd><dt><i>obj:</i></dt><dd> the exception object</dd><dt><i>test_only:</i></dt><dd> only test if the exception is caught, but dont call handlers</dd></blockquote>
+
+
+
+</div><h3>Exception Types: General API</h3>
+
+ <a name="api:mono_exception_from_name_domain"></a>
+ <div class="api">
+    <div class="api-entry">mono_exception_from_name_domain</div>
+
+    <div class="prototype">MonoException*
+mono_exception_from_name_domain (MonoDomain *domain, MonoImage *image, 
+				 const char* name_space, const char *name)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>domain:</i></dt><dd> Domain where the return object will be created.</dd><dt><i>image:</i></dt><dd> the Mono image where to look for the class</dd><dt><i>name_space:</i></dt><dd> the namespace for the class</dd><dt><i>name:</i></dt><dd> class name</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the initialized exception instance.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Creates an exception object of the given namespace/name class on
+	 the given domain.
+	
+
+</div> <a name="api:mono_exception_from_name"></a>
+ <div class="api">
+    <div class="api-entry">mono_exception_from_name</div>
+
+    <div class="prototype">MonoException*
+mono_exception_from_name (MonoImage *image, const char *name_space,
+			  const char *name)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>image:</i></dt><dd> the Mono image where to look for the class</dd><dt><i>name_space:</i></dt><dd> the namespace for the class</dd><dt><i>name:</i></dt><dd> class name</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the initialized exception instance.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Creates an exception of the given namespace/name class in the
+	 current domain.
+	
+
+</div> <a name="api:mono_exception_from_name_msg"></a>
+ <div class="api">
+    <div class="api-entry">mono_exception_from_name_msg</div>
+
+    <div class="prototype">MonoException*
+mono_exception_from_name_msg (MonoImage *image, const char *name_space,
+			      const char *name, const char *msg)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>image:</i></dt><dd> the Mono image where to look for the class</dd><dt><i>name_space:</i></dt><dd> the namespace for the class</dd><dt><i>name:</i></dt><dd> class name</dd><dt><i>msg:</i></dt><dd> the message to embed inside the exception</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the initialized exception instance.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Creates an exception and initializes its message field.
+	
+
+</div> <a name="api:mono_exception_from_name_two_strings"></a>
+ <div class="api">
+    <div class="api-entry">mono_exception_from_name_two_strings</div>
+
+    <div class="prototype">MonoException*
+mono_exception_from_name_two_strings (MonoImage *image, const char *name_space,
+				      const char *name, MonoString *a1, MonoString *a2)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>image:</i></dt><dd> the Mono image where to look for the class</dd><dt><i>name_space:</i></dt><dd> the namespace for the class</dd><dt><i>name:</i></dt><dd> class name</dd><dt><i>a1:</i></dt><dd> first string argument to pass</dd><dt><i>a2:</i></dt><dd> second string argument to pass</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the initialized exception instance.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Creates an exception from a constructor that takes two string
+	 arguments.
+	
+
+
+</div><h3>Obtaining Common Exceptions</h3>
+
+	<p />There are a number of common exceptions that are used by
+	the runtime, use the routines in this section to get a copy of
+	those exceptions.
+	
+ <a name="api:mono_get_exception_appdomain_unloaded"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_appdomain_unloaded</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_appdomain_unloaded (void)
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  a new instance of the System.AppDomainUnloadedException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_argument"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_argument</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_argument (const char *arg, const char *msg)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>arg:</i></dt><dd> the name of the invalid argument.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a new instance of the System.ArgumentException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_argument_null"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_argument_null</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_argument_null (const char *arg)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>arg:</i></dt><dd> the name of the argument that is null</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a new instance of the System.ArgumentNullException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_argument_out_of_range"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_argument_out_of_range</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_argument_out_of_range (const char *arg)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>arg:</i></dt><dd> the name of the out of range argument.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a new instance of the System.ArgumentOutOfRangeException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_arithmetic"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_arithmetic</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_arithmetic ()
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  a new instance of the System.ArithmeticException.
+</blockquote>
+
+</div> <a name="api:mono_get_exception_array_type_mismatch"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_array_type_mismatch</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_array_type_mismatch ()
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  a new instance of the System.ArrayTypeMismatchException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_bad_image_format"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_bad_image_format</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_bad_image_format (const char *msg)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>msg:</i></dt><dd> an informative message for the user.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a new instance of the System.BadImageFormatException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_cannot_unload_appdomain"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_cannot_unload_appdomain</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_cannot_unload_appdomain (const char *msg)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>inner:</i></dt><dd> the inner exception.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a new instance of the System.CannotUnloadAppDomainException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_class</div>
+
+    <div class="prototype">Prototype: mono_get_exception_class</div>
+<p />
+
+</div> <a name="api:mono_get_exception_divide_by_zero"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_divide_by_zero</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_divide_by_zero ()
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  a new instance of the System.DivideByZeroException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_execution_engine"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_execution_engine</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_execution_engine (const char *msg)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>msg:</i></dt><dd> the message to pass to the user</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a new instance of the System.ExecutionEngineException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_file_not_found2"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_file_not_found2</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_file_not_found2 (const char *msg, MonoString *fname)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>msg:</i></dt><dd> an informative message for the user.</dd><dt><i>fname:</i></dt><dd> the name of the file not found.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a new instance of the System.IO.FileNotFoundException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_file_not_found"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_file_not_found</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_file_not_found (MonoString *fname)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>fname:</i></dt><dd> the name of the file not found.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a new instance of the System.IO.FileNotFoundException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_index_out_of_range"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_index_out_of_range</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_index_out_of_range ()
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  a new instance of the System.IndexOutOfRangeException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_invalid_cast"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_invalid_cast</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_invalid_cast ()
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  a new instance of the System.InvalidCastException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_io"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_io</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_io (const char *msg)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>msg:</i></dt><dd> the message to present to the user</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a new instance of the System.IO.IOException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_missing_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_missing_method</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_missing_method (const char *class_name, const char *member_name)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>class_name:</i></dt><dd> the class where the lookup was performed.</dd><dt><i>member_name:</i></dt><dd> the name of the missing method.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a new instance of the System.MissingMethodException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_not_implemented"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_not_implemented</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_not_implemented (const char *msg)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>msg:</i></dt><dd> the message to pass to the user</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a new instance of the System.NotImplementedException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_null_reference"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_null_reference</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_null_reference ()
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  a new instance of the System.NullReferenceException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_overflow"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_overflow</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_overflow ()
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  a new instance of the System.OverflowException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_security"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_security</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_security ()
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  a new instance of the System.Security.SecurityException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_serialization"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_serialization</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_serialization (const char *msg)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>msg:</i></dt><dd> the message to pass to the user</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a new instance of the System.Runtime.Serialization.SerializationException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_stack_overflow"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_stack_overflow</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_stack_overflow (void)
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  a new instance of the System.StackOverflowException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_synchronization_lock"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_synchronization_lock</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_synchronization_lock (const char *msg)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>inner:</i></dt><dd> the inner exception.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a new instance of the System.TypeInitializationException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_thread_abort"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_thread_abort</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_thread_abort ()
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  a new instance of the System.Threading.ThreadAbortException.
+</blockquote>
+
+</div> <a name="api:mono_get_exception_thread_state"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_thread_state</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_thread_state (const char *msg)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>msg:</i></dt><dd> the message to present to the user</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a new instance of the System.Threading.ThreadStateException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_type_initialization"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_type_initialization</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_type_initialization (const gchar *type_name, MonoException *inner)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>type_name:</i></dt><dd> the name of the type that failed to initialize.</dd><dt><i>inner:</i></dt><dd> the inner exception.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a new instance of the System.TypeInitializationException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_type_load"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_type_load</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_type_load (MonoString *class_name, char *assembly_name)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>class_name:</i></dt><dd> the name of the class that could not be loaded</dd><dt><i>assembly_name:</i></dt><dd> the assembly where the class was looked up.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a new instance of the System.TypeLoadException.
+</blockquote>
+
+</div> <a name="api:mono_get_exception_invalid_operation"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_invalid_operation</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_invalid_operation (const char *msg)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>msg:</i></dt><dd> the message to pass to the user</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a new instance of the System.InvalidOperationException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_missing_field"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_missing_field</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_missing_field (const char *class_name, const char *member_name)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>class_name:</i></dt><dd> the class where the lookup was performed</dd><dt><i>member_name:</i></dt><dd> the name of the missing method.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a new instance of the System.MissingFieldException
+</blockquote>
+
+</div> <a name="api:mono_get_exception_not_supported"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_exception_not_supported</div>
+
+    <div class="prototype">MonoException*
+mono_get_exception_not_supported (const char *msg)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>msg:</i></dt><dd> the message to pass to the user</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a new instance of the System.NotSupportedException
+</blockquote>
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-gc.html b/docs/deploy/mono-api-gc.html
new file mode 100644
index 0000000..7078f33
--- /dev/null
+++ b/docs/deploy/mono-api-gc.html
@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-gc.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h1>Garbage Collector Interface</h1>
+
+<h1>Public Interface</h1>
+
+	<p />The public interface of the Mono GC is fairly limited, and
+	its the only one that embedders should be using:
+	
+ <a name="api:mono_gc_collect"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_collect</div>
+
+    <div class="prototype">Prototype: mono_gc_collect</div>
+<p />
+
+</div> <a name="api:mono_gc_max_generation"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_max_generation</div>
+
+    <div class="prototype">Prototype: mono_gc_max_generation</div>
+<p />
+
+</div> <a name="api:mono_gc_get_heap_size"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_get_heap_size</div>
+
+    <div class="prototype">Prototype: mono_gc_get_heap_size</div>
+<p />
+
+</div> <a name="api:mono_gc_get_used_size"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_get_used_size</div>
+
+    <div class="prototype">Prototype: mono_gc_get_used_size</div>
+<p />
+
+
+</div><h3>Weak Links</h3>
+
+ <a name="api:mono_gc_weak_link_add"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_weak_link_add</div>
+
+    <div class="prototype">Prototype: mono_gc_weak_link_add</div>
+<p />
+
+</div> <a name="api:mono_gc_weak_link_get"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_weak_link_get</div>
+
+    <div class="prototype">Prototype: mono_gc_weak_link_get</div>
+<p />
+
+</div> <a name="api:mono_gc_weak_link_remove"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_weak_link_remove</div>
+
+    <div class="prototype">Prototype: mono_gc_weak_link_remove</div>
+<p />
+
+
+</div><h2>Internal Interface</h2>
+
+	<p />The internal interface of the Mono GC is the interface used
+	between the runtime engine and the garbage collector.
+	
+ <a name="api:mono_gc_disable"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_disable</div>
+
+    <div class="prototype">Prototype: mono_gc_disable</div>
+<p />
+
+</div> <a name="api:mono_gc_enable"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_enable</div>
+
+    <div class="prototype">Prototype: mono_gc_enable</div>
+<p />
+
+</div> <a name="api:mono_gc_is_finalizer_thread"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_is_finalizer_thread</div>
+
+    <div class="prototype">gboolean
+mono_gc_is_finalizer_thread (MonoThread *thread)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>thread:</i></dt><dd> the thread to test.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 In Mono objects are finalized asynchronously on a separate thread.
+	 This routine tests whether the <i>thread</i> argument represents the
+	 finalization thread.
+	
+<p />
+	 Returns true if <i>thread</i> is the finalization thread.
+
+</div> <a name="api:mono_gc_out_of_memory"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_out_of_memory</div>
+
+    <div class="prototype">Prototype: mono_gc_out_of_memory</div>
+<p />
+
+</div> <a name="api:mono_gc_start_world"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_start_world</div>
+
+    <div class="prototype">Prototype: mono_gc_start_world</div>
+<p />
+
+</div> <a name="api:mono_gc_stop_world"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_stop_world</div>
+
+    <div class="prototype">Prototype: mono_gc_stop_world</div>
+<p />
+
+</div> <a name="api:mono_gc_alloc_fixed"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_alloc_fixed</div>
+
+    <div class="prototype">Prototype: mono_gc_alloc_fixed</div>
+<p />
+
+</div> <a name="api:mono_gc_enable_events"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_enable_events</div>
+
+    <div class="prototype">Prototype: mono_gc_enable_events</div>
+<p />
+
+</div> <a name="api:mono_gc_free_fixed"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_free_fixed</div>
+
+    <div class="prototype">Prototype: mono_gc_free_fixed</div>
+<p />
+
+</div> <a name="api:mono_gc_make_descr_from_bitmap"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_make_descr_from_bitmap</div>
+
+    <div class="prototype">Prototype: mono_gc_make_descr_from_bitmap</div>
+<p />
+
+
+
+</div> <a name="api:mono_gc_base_init"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_base_init</div>
+
+    <div class="prototype">Prototype: mono_gc_base_init</div>
+<p />
+
+</div> <a name="api:mono_gc_invoke_finalizers"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_invoke_finalizers</div>
+
+    <div class="prototype">Prototype: mono_gc_invoke_finalizers</div>
+<p />
+
+</div> <a name="api:mono_gc_is_gc_thread"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_is_gc_thread</div>
+
+    <div class="prototype">Prototype: mono_gc_is_gc_thread</div>
+<p />
+
+</div> <a name="api:mono_gc_pending_finalizers"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_pending_finalizers</div>
+
+    <div class="prototype">Prototype: mono_gc_pending_finalizers</div>
+<p />
+
+</div> <a name="api:mono_gc_register_thread"></a>
+ <div class="api">
+    <div class="api-entry">mono_gc_register_thread</div>
+
+    <div class="prototype">Prototype: mono_gc_register_thread</div>
+<p />
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-gchandle.html b/docs/deploy/mono-api-gchandle.html
new file mode 100644
index 0000000..7640046
--- /dev/null
+++ b/docs/deploy/mono-api-gchandle.html
@@ -0,0 +1,245 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-gchandle.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h1>GC Handles</h1>
+
+<h3>Synopsys</h3>
+
+	<div class="header">
+guint32     <a href="#api:mono_gchandle_new">mono_gchandle_new</a>          (MonoObject *obj, 
+                                        gboolean pinned);
+guint32     <a href="#api:mono_gchandle_new_weakref">mono_gchandle_new_weakref</a>  (MonoObject *obj, 
+                                        gboolean track_resurrection);
+MonoObject* <a href="#api:mono_gchandle_get_target">mono_gchandle_get_target</a>   (guint32 gchandle);
+gboolean    <a href="#api:mono_gchandle_is_in_domain">mono_gchandle_is_in_domain</a> (guint32 gchandle, 
+                                        MonoDomain *domain);
+void        <a href="#api:mono_gchandle_free">mono_gchandle_free</a>         (guint32 gchandle);
+
+	</div>
+	
+	<p />GC handles are wrappers that are used to keep references to
+	managed objects in the unmanaged space and preventing the
+	object from being disposed.
+	
+	<p />These are the C equivalents of the <tt>System.GCHandle</tt>
+	structure.
+
+	<p />There are two kinds of GCHandles that can be created:
+
+	<ul>
+		<li>Handles to objects (use <tt><a href="#api:mono_gchandle_new">mono_gchandle_new</a></tt>). 
+
+		<li>Weak handles to objects (use <tt><a href="#api:mono_gchandle_new_weakref">mono_gchandle_new_weakref</a></tt>).
+		Weak handles can have the objects reclaimed by the
+		garbage collector. 
+		
+	</li></li></ul>
+
+	<p />To retrieve the target address of an object pointed to by a
+	<tt>GCHandle</tt> you should use
+	<tt>mono_gchandle_get_target</tt>.
+
+	<p />For example, consider the following C code:
+<div class="code">
+static MonoObject* o = NULL;
+</div>
+
+	<p />The object in `o' will *NOT* be scanned.
+
+	<p />If you need to store an object in a C variable and prevent
+	it from being collected, you need to acquire a GC handle for
+	it.
+
+<div class="code">
+        guint32 handle = mono_gchandle_new (my_object, TRUE);
+</div>
+
+	<p />TRUE means the object will be pinned, so it won't move in
+	memory when we'll use a moving GC. You can access the
+	MonoObject* referenced by a handle with:
+
+<div class="code">
+        MonoObject* obj = mono_gchandle_get_target (handle);
+</div>
+
+	<p />When you don't need the handle anymore you need to call:
+
+<div class="code">
+        mono_gchandle_free (handle);
+</div>
+
+	<p />Note that if you assign a new object to the C var, you need
+	to get a new handle, it's not enough to store a new object in
+	the C var.
+
+	<p />So code that looked like this:
+
+<div class="code">
+        static MonoObject* o = NULL;
+        ...
+        o = mono_object_new (...);
+        /* use o */
+        ...
+        /* when done to allow the GC to collect o */
+        o = NULL;
+</div>
+
+	<p />should now be changed to:
+
+<div class="code">
+        static guint32 o_handle;
+        ...
+        MonoObject *o = mono_object_new (...);
+        o_handle = mono_gchandle_new (o, TRUE);
+        /* use o or mono_gchandle_get_target (o_handle) */
+        ...
+        /* when done to allow the GC to collect o */
+        mono_gchandle_free (o_handle);
+</div>
+		
+ <a name="api:mono_gchandle_new"></a>
+ <div class="api">
+    <div class="api-entry">mono_gchandle_new</div>
+
+    <div class="prototype">guint32
+mono_gchandle_new (MonoObject *obj, gboolean pinned)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>obj:</i></dt><dd> managed object to get a handle for</dd><dt><i>pinned:</i></dt><dd> whether the object should be pinned</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a handle that can be used to access the object from
+
+	 unmanaged code.</blockquote>
+<b>Remarks</b>
+<p />	 
+	 This returns a handle that wraps the object, this is used to keep a
+	 reference to a managed object from the unmanaged world and preventing the
+	 object from being disposed.
+	
+<p />
+	 If <i>pinned</i> is false the address of the object can not be obtained, if it is
+	 true the address of the object can be obtained.  This will also pin the
+	 object so it will not be possible by a moving garbage collector to move the
+	 object. 
+	
+<p />
+
+</div> <a name="api:mono_gchandle_new_weakref"></a>
+ <div class="api">
+    <div class="api-entry">mono_gchandle_new_weakref</div>
+
+    <div class="prototype">guint32
+mono_gchandle_new_weakref (MonoObject *obj, gboolean track_resurrection)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>obj:</i></dt><dd> managed object to get a handle for</dd><dt><i>pinned:</i></dt><dd> whether the object should be pinned</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a handle that can be used to access the object from
+
+	 unmanaged code.</blockquote>
+<b>Remarks</b>
+<p />	 
+	 This returns a weak handle that wraps the object, this is used to
+	 keep a reference to a managed object from the unmanaged world.
+	 Unlike the mono_gchandle_new the object can be reclaimed by the
+	 garbage collector.  In this case the value of the GCHandle will be
+	 set to zero.
+	
+<p />
+	 If <i>pinned</i> is false the address of the object can not be obtained, if it is
+	 true the address of the object can be obtained.  This will also pin the
+	 object so it will not be possible by a moving garbage collector to move the
+	 object. 
+	
+<p />
+
+</div> <a name="api:mono_gchandle_get_target"></a>
+ <div class="api">
+    <div class="api-entry">mono_gchandle_get_target</div>
+
+    <div class="prototype">MonoObject*
+mono_gchandle_get_target (guint32 gchandle)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>gchandle:</i></dt><dd> a GCHandle's handle.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 The handle was previously created by calling mono_gchandle_new or
+	 mono_gchandle_new_weakref. 
+	
+	 Returns a pointer to the MonoObject represented by the handle or
+	 NULL for a collected object if using a weakref handle.
+
+</div> <a name="api:mono_gchandle_is_in_domain"></a>
+ <div class="api">
+    <div class="api-entry">mono_gchandle_is_in_domain</div>
+
+    <div class="prototype">gboolean
+mono_gchandle_is_in_domain (guint32 gchandle, MonoDomain *domain)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>gchandle:</i></dt><dd> a GCHandle's handle.</dd><dt><i>domain:</i></dt><dd> An application domain.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  true if the object wrapped by the <i>gchandle</i> belongs to the specific <i>domain</i>.
+</blockquote>
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-image.html b/docs/deploy/mono-api-image.html
new file mode 100644
index 0000000..cbb8f2d
--- /dev/null
+++ b/docs/deploy/mono-api-image.html
@@ -0,0 +1,517 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-image.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h2>Image Manipulation</h2>
+
+	<p />Images are the component of assemblies that actually hold
+	the CIL code and <a href="mono-api-metadata.html">metadata</a>
+	in the extended PE/COFF file.
+
+<h3>Synopsis</h3>
+
+	<div class="header">
+#include <metadata/image.h>
+
+typedef struct _MonoImage MonoImage;
+typedef enum {
+        MONO_IMAGE_OK,
+        MONO_IMAGE_ERROR_ERRNO,
+        MONO_IMAGE_MISSING_ASSEMBLYREF,
+        MONO_IMAGE_IMAGE_INVALID
+} MonoImageOpenStatus;
+
+MonoImage*     <a href="#api:mono_image_open">mono_image_open</a>                   (const char *fname, 
+                                                  MonoImageOpenStatus *status);
+               <a href="#api:mono_image_open_full"></a>                                  
+               <a href="#api:mono_image_open_from_data"></a>                                  
+               <a href="#api:mono_image_open_from_data_full"></a>                                  
+void           <a href="#api:mono_image_close">mono_image_close</a>                  (MonoImage *image);
+void           <a href="#api:mono_image_addref">mono_image_addref</a>                 (MonoImage *image);
+               <a href="#api:mono_image_load_file_for_image"></a>                                  
+               <a href="#api:mono_image_get_guid"></a>                                  
+MonoAssembly*  <a href="#api:mono_image_get_assembly">mono_image_get_assembly</a>           (MonoImage *image);
+guint32        <a href="#api:mono_image_get_entry_point">mono_image_get_entry_point</a>        (MonoImage *image);
+const char*    <a href="#api:mono_image_get_filename">mono_image_get_filename</a>           (MonoImage *image);
+const char*    <a href="#api:mono_image_get_name">mono_image_get_name</a>               (MonoImage *image);
+const char*    <a href="#api:mono_image_get_resource">mono_image_get_resource</a>           (MonoImage *image, 
+                                                  guint32 offset, 
+                                                  guint32 *size);
+               <a href="#api:mono_image_get_table_info"></a>                                  
+               <a href="#api:mono_image_get_table_rows"></a>                                  
+gboolean       <a href="#api:mono_image_is_dynamic">mono_image_is_dynamic</a>             (MonoImage *image);
+               <a href="#api:mono_image_loaded_by_guid"></a>                                  
+MonoImage*     <a href="#api:mono_image_loaded">mono_image_loaded</a>                 (const char *name);
+gpointer       <a href="#api:mono_image_lookup_resource">mono_image_lookup_resource</a>        (MonoImage *image, 
+                                                  guint32 res_id, 
+                                                  guint32 lang_id, 
+                                                  gunichar2 *name);
+const char *   <a href="#api:mono_image_strerror">mono_image_strerror</a>               (MonoImageOpenStatus status);
+guint32        <a href="#api:mono_image_strong_name_position">mono_image_strong_name_position</a>   (MonoImage *image, 
+                                                  guint32 *size);
+const char*    <a href="#api:mono_image_get_public_key">mono_image_get_public_key</a>         (MonoImage *image, 
+                                                  guint32 *size);
+const char*    <a href="#api:mono_image_get_strong_name">mono_image_get_strong_name</a>        (MonoImage *image, 
+                                                  guint32 *size);
+gboolean       <a href="#api:mono_image_has_authenticode_entry">mono_image_has_authenticode_entry</a> (MonoImage *image);
+               <a href="#api:mono_image_rva_map"></a>                                  
+int            <a href="#api:mono_image_ensure_section_idx">mono_image_ensure_section_idx</a>     (MonoImage *image, 
+                                                  int section);
+int            <a href="#api:mono_image_ensure_section">mono_image_ensure_section</a>         (MonoImage *image, 
+                                                  const char *section);
+
+	</div>
+
+<h3>Image APIs</h3>
+
+	<p />Images are the actual elements in the runtime that contain
+	the actual code being executed. 
+
+<a name="cil_image_open"></a>
+<h3>Opening and closing MonoImages</h3>
+
+ <a name="api:mono_image_open"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_open</div>
+
+    <div class="prototype">MonoImage*
+mono_image_open (const char *fname, MonoImageOpenStatus *status)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>fname:</i></dt><dd> filename that points to the module we want to open</dd><dt><i>status:</i></dt><dd> An error condition is returned in this field</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  An open image of type %MonoImage or NULL on error. 
+
+	 The caller holds a temporary reference to the returned image which should be cleared 
+	 when no longer needed by calling mono_image_close ().
+	 if NULL, then check the value of <i>status</i> for details on the error</blockquote>
+
+</div> <a name="api:mono_image_open_full"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_open_full</div>
+
+    <div class="prototype">Prototype: mono_image_open_full</div>
+<p />
+
+</div> <a name="api:mono_image_open_from_data"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_open_from_data</div>
+
+    <div class="prototype">Prototype: mono_image_open_from_data</div>
+<p />
+
+</div> <a name="api:mono_image_open_from_data_full"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_open_from_data_full</div>
+
+    <div class="prototype">Prototype: mono_image_open_from_data_full</div>
+<p />
+
+</div> <a name="api:mono_image_close"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_close</div>
+
+    <div class="prototype">void
+mono_image_close (MonoImage *image)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>image:</i></dt><dd> The image file we wish to close</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Closes an image file, deallocates all memory consumed and
+	 unmaps all possible sections of the file
+
+</div> <a name="api:mono_image_addref"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_addref</div>
+
+    <div class="prototype">void
+mono_image_addref (MonoImage *image)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>image:</i></dt><dd> The image file we wish to add a reference to</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	  Increases the reference count of an image.
+
+</div> <a name="api:mono_image_load_file_for_image"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_load_file_for_image</div>
+
+    <div class="prototype">Prototype: mono_image_load_file_for_image</div>
+<p />
+
+
+</div><h3>Image Information</h3>
+
+ <a name="api:mono_image_get_guid"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_get_guid</div>
+
+    <div class="prototype">Prototype: mono_image_get_guid</div>
+<p />
+
+</div> <a name="api:mono_image_get_assembly"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_get_assembly</div>
+
+    <div class="prototype">MonoAssembly* 
+mono_image_get_assembly (MonoImage *image)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>image:</i></dt><dd> the MonoImage.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the assembly that holds this image.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Use this routine to get the assembly that owns this image.
+	
+
+</div> <a name="api:mono_image_get_entry_point"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_get_entry_point</div>
+
+    <div class="prototype">guint32
+mono_image_get_entry_point (MonoImage *image)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>image:</i></dt><dd> the image where the entry point will be looked up.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the token for the entry point method in the image
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Use this routine to determine the metadata token for method that
+	 has been flagged as the entry point.
+	
+
+</div> <a name="api:mono_image_get_filename"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_get_filename</div>
+
+    <div class="prototype">const char*
+mono_image_get_filename (MonoImage *image)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>image:</i></dt><dd> a MonoImage</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the filename.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Used to get the filename that hold the actual MonoImage
+	
+
+</div> <a name="api:mono_image_get_name"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_get_name</div>
+
+    <div class="prototype">const char*
+mono_image_get_name (MonoImage *image)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>name:</i></dt><dd> a MonoImage</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the name of the assembly.
+</blockquote>
+
+</div> <a name="api:mono_image_get_resource"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_get_resource</div>
+
+    <div class="prototype">const char*
+mono_image_get_resource (MonoImage *image, guint32 offset, guint32 *size)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>image:</i></dt><dd> the image where the resource will be looked up.</dd><dt><i>offset:</i></dt><dd> The offset to add to the resource</dd><dt><i>size:</i></dt><dd> a pointer to an int where the size of the resource will be stored</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the pointer to the resource whose offset is <i>offset</i>.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 This is a low-level routine that fetches a resource from the
+	 metadata that starts at a given <i>offset</i>.  The <i>size</i> parameter is
+	 filled with the data field as encoded in the metadata.
+	
+
+</div> <a name="api:mono_image_get_table_info"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_get_table_info</div>
+
+    <div class="prototype">Prototype: mono_image_get_table_info</div>
+<p />
+
+</div> <a name="api:mono_image_get_table_rows"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_get_table_rows</div>
+
+    <div class="prototype">Prototype: mono_image_get_table_rows</div>
+<p />
+
+</div> <a name="api:mono_image_is_dynamic"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_is_dynamic</div>
+
+    <div class="prototype">gboolean
+mono_image_is_dynamic (MonoImage *image)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>image:</i></dt><dd> the MonoImage</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  TRUE if the image was created dynamically, FALSE if not.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Determines if the given image was created dynamically through the
+	 System.Reflection.Emit API
+	
+
+</div> <a name="api:mono_image_loaded_by_guid"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_loaded_by_guid</div>
+
+    <div class="prototype">Prototype: mono_image_loaded_by_guid</div>
+<p />
+
+</div> <a name="api:mono_image_loaded"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_loaded</div>
+
+    <div class="prototype">MonoImage*
+mono_image_loaded (const char *name)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>name:</i></dt><dd> name of the image to load</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the loaded MonoImage, or NULL on failure.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 This routine ensures that the given image is loaded.
+	
+
+</div> <a name="api:mono_image_lookup_resource"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_lookup_resource</div>
+
+    <div class="prototype">gpointer
+mono_image_lookup_resource (MonoImage *image, guint32 res_id, guint32 lang_id, gunichar2 *name)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>image:</i></dt><dd> the image to look up the resource in</dd><dt><i>res_id:</i></dt><dd> A MONO_PE_RESOURCE_ID_ that represents the resource ID to lookup.</dd><dt><i>lang_id:</i></dt><dd> The language id.</dd><dt><i>name:</i></dt><dd> the resource name to lookup.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  NULL if not found, otherwise a pointer to the in-memory representation
+
+	 of the given resource. The caller should free it using g_free () when no longer
+	 needed.</blockquote>
+
+</div> <a name="api:mono_image_strerror"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_strerror</div>
+
+    <div class="prototype">const char *
+mono_image_strerror (MonoImageOpenStatus status)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>status:</i></dt><dd> an code indicating the result from a recent operation</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a string describing the error
+</blockquote>
+
+
+</div><h3>Public Keys, Strong Names and Certificates</h3>
+
+ <a name="api:mono_image_strong_name_position"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_strong_name_position</div>
+
+    <div class="prototype">guint32
+mono_image_strong_name_position (MonoImage *image, guint32 *size)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>image:</i></dt><dd> a MonoImage</dd><dt><i>size:</i></dt><dd> a guint32 pointer, or NULL.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the position within the image file where the strong name
+
+	 is stored.</blockquote>
+<b>Remarks</b>
+<p />	 
+	 If the image has a strong name, and <i>size</i> is not NULL, the value
+	 pointed to by size will have the size of the strong name.
+	
+
+</div> <a name="api:mono_image_get_public_key"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_get_public_key</div>
+
+    <div class="prototype">const char*
+mono_image_get_public_key (MonoImage *image, guint32 *size)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>image:</i></dt><dd> a MonoImage</dd><dt><i>size:</i></dt><dd> a guint32 pointer, or NULL.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  NULL if the image does not have a public key, or a pointer
+
+	 to the public key.</blockquote>
+<b>Remarks</b>
+<p />	 
+	 This is used to obtain the public key in the <i>image</i>.
+	
+<p />
+	 If the image has a public key, and <i>size</i> is not NULL, the value
+	 pointed to by size will have the size of the public key.
+	
+<p />
+
+</div> <a name="api:mono_image_get_strong_name"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_get_strong_name</div>
+
+    <div class="prototype">const char*
+mono_image_get_strong_name (MonoImage *image, guint32 *size)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>image:</i></dt><dd> a MonoImage</dd><dt><i>size:</i></dt><dd> a guint32 pointer, or NULL.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  NULL if the image does not have a strong name, or a
+
+	 pointer to the public key.</blockquote>
+<b>Remarks</b>
+<p />	 
+	 If the image has a strong name, and <i>size</i> is not NULL, the value
+	 pointed to by size will have the size of the strong name.
+	
+
+</div> <a name="api:mono_image_has_authenticode_entry"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_has_authenticode_entry</div>
+
+    <div class="prototype">gboolean
+mono_image_has_authenticode_entry (MonoImage *image)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>image:</i></dt><dd> the MonoImage</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  TRUE if the image contains an authenticode entry in the PE
+
+	 directory.</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Use this routine to determine if the image has a Authenticode
+	 Certificate Table.
+	
+
+
+</div><h3>Low-level features</h3>
+
+ <a name="api:mono_image_rva_map"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_rva_map</div>
+
+    <div class="prototype">Prototype: mono_image_rva_map</div>
+<p />
+
+</div> <a name="api:mono_image_ensure_section_idx"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_ensure_section_idx</div>
+
+    <div class="prototype">int
+mono_image_ensure_section_idx (MonoImage *image, int section)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>image:</i></dt><dd> The image we are operating on</dd><dt><i>section:</i></dt><dd> section number that we will load/map into memory</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  TRUE on success
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 This routine makes sure that we have an in-memory copy of
+	 an image section (.text, .rsrc, .data).
+	
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-internal.html b/docs/deploy/mono-api-internal.html
new file mode 100644
index 0000000..f3cc69a
--- /dev/null
+++ b/docs/deploy/mono-api-internal.html
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-internal.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h1>Code Generator Internals</h1>
+
+	<p />The functions in this document are internal to the JIT,
+	they are here for completeness, but you should refer to the
+	source code for more details.
+	
+<h3>BURG public API</h3>
+
+ <a name="api:mono_burg_kids"></a>
+ <div class="api">
+    <div class="api-entry">mono_burg_kids</div>
+
+    <div class="prototype">Prototype: mono_burg_kids</div>
+<p />
+
+</div> <a name="api:mono_burg_label"></a>
+ <div class="api">
+    <div class="api-entry">mono_burg_label</div>
+
+    <div class="prototype">Prototype: mono_burg_label</div>
+<p />
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-interpreter.html b/docs/deploy/mono-api-interpreter.html
new file mode 100644
index 0000000..a035033
--- /dev/null
+++ b/docs/deploy/mono-api-interpreter.html
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-interpreter.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h3>Interpreter API</h3>
+
+	<p />This describes the API exposed by the interpreter, but it
+	is for the most part an internal to the interpreter. 
+	
+ <a name="api:mono_interp_dis_mintop"></a>
+ <div class="api">
+    <div class="api-entry">mono_interp_dis_mintop</div>
+
+    <div class="prototype">Prototype: mono_interp_dis_mintop</div>
+<p />
+
+</div> <a name="api:mono_interp_exec"></a>
+ <div class="api">
+    <div class="api-entry">mono_interp_exec</div>
+
+    <div class="prototype">Prototype: mono_interp_exec</div>
+<p />
+
+</div> <a name="api:mono_interp_ftnptr_to_delegate"></a>
+ <div class="api">
+    <div class="api-entry">mono_interp_ftnptr_to_delegate</div>
+
+    <div class="prototype">Prototype: mono_interp_ftnptr_to_delegate</div>
+<p />
+
+</div> <a name="api:mono_interp_get_runtime_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_interp_get_runtime_method</div>
+
+    <div class="prototype">Prototype: mono_interp_get_runtime_method</div>
+<p />
+
+</div> <a name="api:mono_interp_transform_init"></a>
+ <div class="api">
+    <div class="api-entry">mono_interp_transform_init</div>
+
+    <div class="prototype">Prototype: mono_interp_transform_init</div>
+<p />
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-jit.html b/docs/deploy/mono-api-jit.html
new file mode 100644
index 0000000..d89d8d5
--- /dev/null
+++ b/docs/deploy/mono-api-jit.html
@@ -0,0 +1,137 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-jit.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h2>Synopsis</h2>
+
+<div class="header">
+G_GNUC_UNUSED char * <a href="#api:mono_pmip">mono_pmip</a>                        (void *ip);
+void                 <a href="#api:mono_print_method_from_ip">mono_print_method_from_ip</a>        (void *ip);
+                     <a href="#api:mono_print_thread_dump"></a>                                 
+void                 <a href="#api:mono_threads_request_thread_dump">mono_threads_request_thread_dump</a> (void);
+                     <a href="#api:mono_inst_name"></a>                                 
+
+</div>
+
+<h3>Useful Debugging Functions</h3>
+
+	<p />These functions are useful when running the Mono VM inside
+	a debugger.
+
+ <a name="api:mono_pmip"></a>
+ <div class="api">
+    <div class="api-entry">mono_pmip</div>
+
+    <div class="prototype">G_GNUC_UNUSED char *
+mono_pmip (void *ip)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>ip:</i></dt><dd> an instruction pointer address</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the name of the method at address <i>ip</i>.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 This method is used from a debugger to get the name of the
+	 method at address <i>ip</i>.   This routine is typically invoked from
+	 a debugger like this:
+	
+	 (gdb) print mono_pmip ($pc)
+	
+
+</div> <a name="api:mono_print_method_from_ip"></a>
+ <div class="api">
+    <div class="api-entry">mono_print_method_from_ip</div>
+
+    <div class="prototype">void
+mono_print_method_from_ip (void *ip)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>ip:</i></dt><dd> an instruction pointer address</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This method is used from a debugger to get the name of the
+	 method at address <i>ip</i>.
+	
+	 This prints the name of the method at address <i>ip</i> in the standard
+	 output.  Unlike mono_pmip which returns a string, this routine
+	 prints the value on the standard output. 
+
+</div> <a name="api:mono_print_thread_dump"></a>
+ <div class="api">
+    <div class="api-entry">mono_print_thread_dump</div>
+
+    <div class="prototype">Prototype: mono_print_thread_dump</div>
+<p />
+
+</div> <a name="api:mono_threads_request_thread_dump"></a>
+ <div class="api">
+    <div class="api-entry">mono_threads_request_thread_dump</div>
+
+    <div class="prototype">void
+mono_threads_request_thread_dump (void)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+	   Ask all threads except the current to print their stacktrace to stdout.
+
+
+</div><h3>Helper Tools For Native Ports</h3>
+
+</body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-jitinternal.html b/docs/deploy/mono-api-jitinternal.html
new file mode 100644
index 0000000..c1ef76c
--- /dev/null
+++ b/docs/deploy/mono-api-jitinternal.html
@@ -0,0 +1,248 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-jitinternal.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h1>Notification Interface</h1>
+
+	<p />Am not sure that we want to document this;  This seems like
+	an internal interface that third parties would not likely
+	use, and if they do, they probably are reading the JIT's
+	source code. 
+
+	<p />These methods must be called to notify the profiler of an
+	event that must be recorded.   Mono's JIT engine currently
+	calls these routines, but if you are extending Mono in some
+	way these are the methods that you might invoke to notify the
+	profiler of an event.
+
+ <a name="api:mono_profiler_load"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_load</div>
+
+    <div class="prototype">void 
+mono_profiler_load (const char *desc)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>desc:</i></dt><dd> arguments to configure the profiler</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Invoke this method to initialize the profiler.   This will drive the
+	 loading of the internal ("default") or any external profilers.
+	
+	 This routine is invoked by Mono's driver, but must be called manually
+	 if you embed Mono into your application.
+
+</div> <a name="api:mono_profiler_allocation"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_allocation</div>
+
+    <div class="prototype">Prototype: mono_profiler_allocation</div>
+<p />
+
+</div> <a name="api:mono_profiler_stat_hit"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_stat_hit</div>
+
+    <div class="prototype">Prototype: mono_profiler_stat_hit</div>
+<p />
+
+</div> <a name="api:mono_profiler_thread_start"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_thread_start</div>
+
+    <div class="prototype">Prototype: mono_profiler_thread_start</div>
+<p />
+
+</div> <a name="api:mono_profiler_thread_end"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_thread_end</div>
+
+    <div class="prototype">Prototype: mono_profiler_thread_end</div>
+<p />
+
+</div> <a name="api:mono_profiler_appdomain_event"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_appdomain_event</div>
+
+    <div class="prototype">Prototype: mono_profiler_appdomain_event</div>
+<p />
+
+</div> <a name="api:mono_profiler_appdomain_loaded"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_appdomain_loaded</div>
+
+    <div class="prototype">Prototype: mono_profiler_appdomain_loaded</div>
+<p />
+
+</div> <a name="api:mono_profiler_assembly_event"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_assembly_event</div>
+
+    <div class="prototype">Prototype: mono_profiler_assembly_event</div>
+<p />
+
+</div> <a name="api:mono_profiler_assembly_loaded"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_assembly_loaded</div>
+
+    <div class="prototype">Prototype: mono_profiler_assembly_loaded</div>
+<p />
+
+</div> <a name="api:mono_profiler_class_event"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_class_event</div>
+
+    <div class="prototype">Prototype: mono_profiler_class_event</div>
+<p />
+
+</div> <a name="api:mono_profiler_class_loaded"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_class_loaded</div>
+
+    <div class="prototype">Prototype: mono_profiler_class_loaded</div>
+<p />
+
+</div> <a name="api:mono_profiler_code_transition"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_code_transition</div>
+
+    <div class="prototype">Prototype: mono_profiler_code_transition</div>
+<p />
+
+</div> <a name="api:mono_profiler_method_end_jit"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_method_end_jit</div>
+
+    <div class="prototype">Prototype: mono_profiler_method_end_jit</div>
+<p />
+
+</div> <a name="api:mono_profiler_method_enter"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_method_enter</div>
+
+    <div class="prototype">Prototype: mono_profiler_method_enter</div>
+<p />
+
+</div> <a name="api:mono_profiler_method_jit"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_method_jit</div>
+
+    <div class="prototype">Prototype: mono_profiler_method_jit</div>
+<p />
+
+</div> <a name="api:mono_profiler_method_leave"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_method_leave</div>
+
+    <div class="prototype">Prototype: mono_profiler_method_leave</div>
+<p />
+
+</div> <a name="api:mono_profiler_module_event"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_module_event</div>
+
+    <div class="prototype">Prototype: mono_profiler_module_event</div>
+<p />
+
+</div> <a name="api:mono_profiler_module_loaded"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_module_loaded</div>
+
+    <div class="prototype">Prototype: mono_profiler_module_loaded</div>
+<p />
+
+</div> <a name="api:mono_profiler_shutdown"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_shutdown</div>
+
+    <div class="prototype">Prototype: mono_profiler_shutdown</div>
+<p />
+
+</div> <a name="api:mono_profiler_startup"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_startup</div>
+
+    <div class="prototype">Prototype: mono_profiler_startup</div>
+<p />
+
+</div> <a name="api:mono_profiler_gc_event"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_gc_event</div>
+
+    <div class="prototype">Prototype: mono_profiler_gc_event</div>
+<p />
+
+</div> <a name="api:mono_profiler_gc_heap_resize"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_gc_heap_resize</div>
+
+    <div class="prototype">Prototype: mono_profiler_gc_heap_resize</div>
+<p />
+
+</div> <a name="api:mono_profiler_gc_event"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_gc_event</div>
+
+    <div class="prototype">Prototype: mono_profiler_gc_event</div>
+<p />
+
+</div> <a name="api:mono_profiler_gc_heap_resize"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_gc_heap_resize</div>
+
+    <div class="prototype">Prototype: mono_profiler_gc_heap_resize</div>
+<p />
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-marshal.html b/docs/deploy/mono-api-marshal.html
new file mode 100644
index 0000000..cb0b25c
--- /dev/null
+++ b/docs/deploy/mono-api-marshal.html
@@ -0,0 +1,351 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-marshal.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+
+
+ <a name="api:mono_delegate_free_ftnptr"></a>
+ <div class="api">
+    <div class="api-entry">mono_delegate_free_ftnptr</div>
+
+    <div class="prototype">Prototype: mono_delegate_free_ftnptr</div>
+<p />
+
+</div> <a name="api:mono_delegate_to_ftnptr"></a>
+ <div class="api">
+    <div class="api-entry">mono_delegate_to_ftnptr</div>
+
+    <div class="prototype">Prototype: mono_delegate_to_ftnptr</div>
+<p />
+
+</div> <a name="api:mono_ftnptr_to_delegate"></a>
+ <div class="api">
+    <div class="api-entry">mono_ftnptr_to_delegate</div>
+
+    <div class="prototype">Prototype: mono_ftnptr_to_delegate</div>
+<p />
+
+</div> <a name="api:mono_marshal_alloc"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_alloc</div>
+
+    <div class="prototype">Prototype: mono_marshal_alloc</div>
+<p />
+
+</div> <a name="api:mono_marshal_asany"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_asany</div>
+
+    <div class="prototype">Prototype: mono_marshal_asany</div>
+<p />
+
+</div> <a name="api:mono_marshal_free_array"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_free_array</div>
+
+    <div class="prototype">Prototype: mono_marshal_free_array</div>
+<p />
+
+</div> <a name="api:mono_marshal_free_asany"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_free_asany</div>
+
+    <div class="prototype">Prototype: mono_marshal_free_asany</div>
+<p />
+
+</div> <a name="api:mono_marshal_free"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_free</div>
+
+    <div class="prototype">Prototype: mono_marshal_free</div>
+<p />
+
+</div> <a name="api:mono_marshal_get_castclass"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_castclass</div>
+
+    <div class="prototype">Prototype: mono_marshal_get_castclass</div>
+<p />
+
+</div> <a name="api:mono_marshal_get_delegate_begin_invoke"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_delegate_begin_invoke</div>
+
+    <div class="prototype">Prototype: mono_marshal_get_delegate_begin_invoke</div>
+<p />
+
+</div> <a name="api:mono_marshal_get_delegate_end_invoke"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_delegate_end_invoke</div>
+
+    <div class="prototype">Prototype: mono_marshal_get_delegate_end_invoke</div>
+<p />
+
+</div> <a name="api:mono_marshal_get_delegate_invoke"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_delegate_invoke</div>
+
+    <div class="prototype">Prototype: mono_marshal_get_delegate_invoke</div>
+<p />
+
+</div> <a name="api:mono_marshal_get_icall_wrapper"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_icall_wrapper</div>
+
+    <div class="prototype">Prototype: mono_marshal_get_icall_wrapper</div>
+<p />
+
+</div> <a name="api:mono_marshal_get_isinst"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_isinst</div>
+
+    <div class="prototype">Prototype: mono_marshal_get_isinst</div>
+<p />
+
+</div> <a name="api:mono_marshal_get_ldfld_remote_wrapper"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_ldfld_remote_wrapper</div>
+
+    <div class="prototype">Prototype: mono_marshal_get_ldfld_remote_wrapper</div>
+<p />
+
+</div> <a name="api:mono_marshal_get_ldfld_wrapper"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_ldfld_wrapper</div>
+
+    <div class="prototype">Prototype: mono_marshal_get_ldfld_wrapper</div>
+<p />
+
+</div> <a name="api:mono_marshal_get_managed_wrapper"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_managed_wrapper</div>
+
+    <div class="prototype">Prototype: mono_marshal_get_managed_wrapper</div>
+<p />
+
+</div> <a name="api:mono_marshal_get_native_wrapper"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_native_wrapper</div>
+
+    <div class="prototype">MonoMethod*
+mono_marshal_get_native_wrapper (MonoMethod *method, gboolean check_exceptions, gboolean aot)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>method:</i></dt><dd> The MonoMethod to wrap.</dd><dt><i>check_exceptions:</i></dt><dd> Whenever to check for pending exceptions</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 generates IL code for the pinvoke wrapper (the generated method
+	 calls the unmanaged code in piinfo->addr)
+
+</div> <a name="api:mono_marshal_get_proxy_cancast"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_proxy_cancast</div>
+
+    <div class="prototype">Prototype: mono_marshal_get_proxy_cancast</div>
+<p />
+
+</div> <a name="api:mono_marshal_get_ptr_to_struct"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_ptr_to_struct</div>
+
+    <div class="prototype">MonoMethod*
+mono_marshal_get_ptr_to_struct (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd></dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 generates IL code for PtrToStructure (IntPtr src, object structure)
+
+</div> <a name="api:mono_marshal_get_remoting_invoke_for_target"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_remoting_invoke_for_target</div>
+
+    <div class="prototype">Prototype: mono_marshal_get_remoting_invoke_for_target</div>
+<p />
+
+</div> <a name="api:mono_marshal_get_remoting_invoke"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_remoting_invoke</div>
+
+    <div class="prototype">Prototype: mono_marshal_get_remoting_invoke</div>
+<p />
+
+</div> <a name="api:mono_marshal_get_remoting_invoke_with_check"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_remoting_invoke_with_check</div>
+
+    <div class="prototype">Prototype: mono_marshal_get_remoting_invoke_with_check</div>
+<p />
+
+</div> <a name="api:mono_marshal_get_runtime_invoke"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_runtime_invoke</div>
+
+    <div class="prototype">Prototype: mono_marshal_get_runtime_invoke</div>
+<p />
+
+</div> <a name="api:mono_marshal_get_stelemref"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_stelemref</div>
+
+    <div class="prototype">Prototype: mono_marshal_get_stelemref</div>
+<p />
+
+</div> <a name="api:mono_marshal_get_stfld_remote_wrapper"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_stfld_remote_wrapper</div>
+
+    <div class="prototype">Prototype: mono_marshal_get_stfld_remote_wrapper</div>
+<p />
+
+</div> <a name="api:mono_marshal_get_stfld_wrapper"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_stfld_wrapper</div>
+
+    <div class="prototype">Prototype: mono_marshal_get_stfld_wrapper</div>
+<p />
+
+</div> <a name="api:mono_marshal_get_struct_to_ptr"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_struct_to_ptr</div>
+
+    <div class="prototype">MonoMethod*
+mono_marshal_get_struct_to_ptr (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd></dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 generates IL code for StructureToPtr (object structure, IntPtr ptr, bool fDeleteOld)
+
+</div> <a name="api:mono_marshal_get_synchronized_wrapper"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_synchronized_wrapper</div>
+
+    <div class="prototype">Prototype: mono_marshal_get_synchronized_wrapper</div>
+<p />
+
+</div> <a name="api:mono_marshal_get_unbox_wrapper"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_unbox_wrapper</div>
+
+    <div class="prototype">Prototype: mono_marshal_get_unbox_wrapper</div>
+<p />
+
+</div> <a name="api:mono_marshal_get_xappdomain_invoke"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_get_xappdomain_invoke</div>
+
+    <div class="prototype">Prototype: mono_marshal_get_xappdomain_invoke</div>
+<p />
+
+</div> <a name="api:mono_marshal_load_type_info"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_load_type_info</div>
+
+    <div class="prototype">MonoMarshalType*
+mono_marshal_load_type_info (MonoClass* klass)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+	  Initialize klass->marshal_info using information from metadata. This function can
+	 recursively call itself, and the caller is responsible to avoid that by calling 
+	 mono_marshal_is_loading_type_info () beforehand.
+	
+	 LOCKING: Acquires the loader lock.
+
+</div> <a name="api:mono_marshal_method_from_wrapper"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_method_from_wrapper</div>
+
+    <div class="prototype">Prototype: mono_marshal_method_from_wrapper</div>
+<p />
+
+</div> <a name="api:mono_marshal_realloc"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_realloc</div>
+
+    <div class="prototype">Prototype: mono_marshal_realloc</div>
+<p />
+
+</div> <a name="api:mono_marshal_set_last_error"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_set_last_error</div>
+
+    <div class="prototype">void
+mono_marshal_set_last_error (void)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+	 This function is invoked to set the last error value from a P/Invoke call
+	 which has SetLastError set.
+
+</div> <a name="api:mono_marshal_string_to_utf16"></a>
+ <div class="api">
+    <div class="api-entry">mono_marshal_string_to_utf16</div>
+
+    <div class="prototype">Prototype: mono_marshal_string_to_utf16</div>
+<p />
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-metadata.html b/docs/deploy/mono-api-metadata.html
new file mode 100644
index 0000000..8389610
--- /dev/null
+++ b/docs/deploy/mono-api-metadata.html
@@ -0,0 +1,1511 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-metadata.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h1>Metadata Reading</h1>
+
+	<p />The Metadata API gives developers low-level access to the
+	information encoded in CLI modules: type and
+	methods definitions encoded in metadata as well as access to
+	the CIL code and embedded resources.
+
+	<p />Managed developers access this information using either the
+	System.Reflection API or a library
+	like <a href="http://www.mono-project.com/Cecil">Cecil</a>.
+
+	<p />To start using the Metadata API it is necessary
+	to <a href="mono-api-assembly.html#cil_assembly_load">open an
+	assembly</a> or a CIL image (a .dll or .exe file) using one of
+	the
+	<a href="mono-api-image.html#cil_image_open">CIL image
+	opening</a> API calls.
+
+<h2>Metadata Heaps</h2>
+
+	<p />ECMA CLI images contain four heaps that store different
+	kinds of information, these are:
+
+	<ul>
+		<li>GUID heap (called #GUID) contains 128-bit GUIDs,
+		you can get pointer to a GUID value by
+		calling <a href="#api:mono_metadata_guid_heap">mono_metadata_guid_heap</a>.
+
+		<li>User string heap (called #US), it contains user
+		visible strings, you can fetch a string from this heap
+		by calling
+		<a href="#api:mono_metadata_user_string">mono_metadata_user_string</a>.
+
+		<li>Blob heap (called #blob), it contains binary
+		blobs of data, you can get a blob
+		by <a href="#api:mono_metadata_blob_heap">mono_metadata_blob_heap</a>.
+		You can determine the size of the blob using
+		the <a href="#api:mono_metadata_decode_blob_size">mono_metadata_decode_blob_size</a>. 
+	
+	</li></li></li></ul>
+
+	<p />The ECMA file format also has an extra section called the
+	"#~" stream, this stream is the one that holds the metadata
+	tables.   There is a high-level API to get access to the
+	contents of this API, described in the
+	section <a href="#metadata-tables">Metadata Tables</a>.
+	
+ <a name="api:mono_metadata_guid_heap"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_guid_heap</div>
+
+    <div class="prototype">const char *
+mono_metadata_guid_heap (MonoImage *meta, guint32 index)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>meta:</i></dt><dd> metadata context</dd><dt><i>index:</i></dt><dd> index into the guid heap.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  an in-memory pointer to the <i>index</i> in the guid heap.
+</blockquote>
+
+</div> <a name="api:mono_metadata_string_heap"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_string_heap</div>
+
+    <div class="prototype">const char *
+mono_metadata_string_heap (MonoImage *meta, guint32 index)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>meta:</i></dt><dd> metadata context</dd><dt><i>index:</i></dt><dd> index into the string heap.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  an in-memory pointer to the <i>index</i> in the string heap.
+</blockquote>
+
+</div> <a name="api:mono_metadata_blob_heap"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_blob_heap</div>
+
+    <div class="prototype">const char *
+mono_metadata_blob_heap (MonoImage *meta, guint32 index)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>meta:</i></dt><dd> metadata context</dd><dt><i>index:</i></dt><dd> index into the blob.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  an in-memory pointer to the <i>index</i> in the Blob heap.
+</blockquote>
+
+</div> <a name="api:mono_metadata_user_string"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_user_string</div>
+
+    <div class="prototype">const char *
+mono_metadata_user_string (MonoImage *meta, guint32 index)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>meta:</i></dt><dd> metadata context</dd><dt><i>index:</i></dt><dd> index into the user string heap.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  an in-memory pointer to the <i>index</i> in the user string heap ("<i>US</i>").
+</blockquote>
+
+</div> <a name="api:mono_metadata_decode_blob_size"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_decode_blob_size</div>
+
+    <div class="prototype">guint32
+mono_metadata_decode_blob_size (const char *xptr, const char **rptr)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>ptr:</i></dt><dd> pointer to a blob object</dd><dt><i>rptr:</i></dt><dd> the new position of the pointer</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the size of the blob object
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 This decodes a compressed size as described by 23.1.4 (a blob or user string object)
+	
+
+
+<a name="metadata-tables"></a>
+</div><h2>Metadata Tables</h2>
+
+	<p />Metadata is encoded in a number of tables included on every
+	CIL image.   These tables contain type definitions, member
+	definitions and so on, these constants are defined in the ECMA 335
+	specification Partition II section 22.   The following table
+	shows the C constants defined in the Mono runtime and how they
+	map to the equivalent ECMA CLI metadata table:
+
+	<center>
+	<table border="1">
+	  <thead>
+	    <td>
+	       <b>ECMA CLI Table Name</b>
+	    </td>
+	    <td>
+	    <b>C Constant Name</b>
+	    </td>
+	    <td>
+	       <b>Table Schema (Array Size + Columns Constants)</b>
+	    </td>
+	  </thead>
+<td>Assembly</td><td>MONO_TABLE_ASSEMBLY</td><td>
+Array size: 
+MONO_ASSEMBLY_SIZE
+<ul>
+	<li>MONO_ASSEMBLY_HASH_ALG
+	<li>MONO_ASSEMBLY_MAJOR_VERSION
+	<li>MONO_ASSEMBLY_MINOR_VERSION
+	<li>MONO_ASSEMBLY_BUILD_NUMBER
+	<li>MONO_ASSEMBLY_REV_NUMBER
+	<li>MONO_ASSEMBLY_FLAGS
+	<li>MONO_ASSEMBLY_PUBLIC_KEY
+	<li>MONO_ASSEMBLY_NAME
+	<li>MONO_ASSEMBLY_CULTURE
+</li></li></li></li></li></li></li></li></li></ul>
+</td>
+
+
+<td>AssemblyOS</td><td>MONO_TABLE_ASSEMBLYOS</td><td>
+Array size: 
+MONO_ASSEMBLYOS_SIZE
+<ul>
+	<li>MONO_ASSEMBLYOS_PLATFORM
+	<li>MONO_ASSEMBLYOS_MAJOR_VERSION
+	<li>MONO_ASSEMBLYOS_MINOR_VERSION
+</li></li></li></ul>
+</td>
+
+
+<td>AssemblyProcessor</td><td>MONO_TABLE_ASSEMBLYPROCESSOR</td><td>Array
+size: MONO_ASSEMBLYPROCESSOR_SIZE
+<ul>
+	<li>MONO_ASSEMBLY_PROCESSOR
+</li></ul>
+</td>
+
+
+<td>AssemblyRef</td><td>MONO_TABLE_ASSEMBLYREF</td><td>
+Array size: 
+MONO_ASSEMBLYREF_SIZE
+<ul>
+	<li>MONO_ASSEMBLYREF_MAJOR_VERSION
+	<li>MONO_ASSEMBLYREF_MINOR_VERSION
+	<li>MONO_ASSEMBLYREF_BUILD_NUMBER
+	<li>MONO_ASSEMBLYREF_REV_NUMBER
+	<li>MONO_ASSEMBLYREF_FLAGS
+	<li>MONO_ASSEMBLYREF_PUBLIC_KEY
+	<li>MONO_ASSEMBLYREF_NAME
+	<li>MONO_ASSEMBLYREF_CULTURE
+	<li>MONO_ASSEMBLYREF_HASH_VALUE
+</li></li></li></li></li></li></li></li></li></ul>
+</td>
+
+
+<td>AssemblyRefProcessor</td><td>MONO_TABLE_ASSEMBLYREFPROCESSOR</td><td>Array
+size: MONO_ASSEMBLYREFPROC_SIZE
+<ul>
+	<li>MONO_ASSEMBLYREFPROC_PROCESSOR
+	<li>MONO_ASSEMBLYREFPROC_ASSEMBLYREF
+</li></li></ul>
+</td>
+
+
+<td>AssemblyRefOS</td><td>MONO_TABLE_ASSEMBLYREFOS</td><td>
+Array size: 
+	<li>MONO_ASSEMBLYREFOS_SIZE
+<ul>
+	<li>MONO_ASSEMBLYREFOS_PLATFORM
+	<li>MONO_ASSEMBLYREFOS_MAJOR_VERSION
+	<li>MONO_ASSEMBLYREFOS_MINOR_VERSION
+	<li>MONO_ASSEMBLYREFOS_ASSEMBLYREF
+</li></li></li></li></ul>
+</li></td>
+
+
+<td>ClassLayout</td><td>MONO_TABLE_CLASSLAYOUT</td><td>
+Array size: 
+MONO_CLASSLAYOUT_SIZE
+<ul>
+	<li>MONO_CLASS_LAYOUT_PACKING_SIZE
+	<li>MONO_CLASS_LAYOUT_CLASS_SIZE
+	<li>MONO_CLASS_LAYOUT_PARENT
+</li></li></li></ul>
+</td>
+
+
+<td>Constant</td><td>MONO_TABLE_CONSTANT</td><td>
+Array size: 
+MONO_CONSTANT_SIZE
+<ul>
+	<li>MONO_CONSTANT_TYPE
+	<li>MONO_CONSTANT_PADDING
+	<li>MONO_CONSTANT_PARENT
+	<li>MONO_CONSTANT_VALUE
+</li></li></li></li></ul>
+</td>
+
+
+<td>CustomAttribute</td><td>MONO_TABLE_CUSTOMATTRIBUTE</td><td>
+Array size:
+MONO_CUSTOM_ATTR_SIZE
+<ul>
+	<li>MONO_CUSTOM_ATTR_PARENT
+	<li>MONO_CUSTOM_ATTR_TYPE
+	<li>MONO_CUSTOM_ATTR_VALUE
+</li></li></li></ul>
+</td>
+
+
+<td>DeclSecurity</td><td>MONO_TABLE_DECLSECURITY</td><td>
+Array size: 
+MONO_DECL_SECURITY_SIZE
+<ul>
+	<li>MONO_DECL_SECURITY_ACTION
+	<li>MONO_DECL_SECURITY_PARENT
+	<li>MONO_DECL_SECURITY_PERMISSIONSET
+</li></li></li></ul>
+</td>
+
+
+<td>EventMap</td><td>MONO_TABLE_EVENTMAP</td><td>
+Array size: 
+MONO_EVENT_MAP_SIZE
+<ul>
+	<li>MONO_EVENT_MAP_PARENT
+	<li>MONO_EVENT_MAP_EVENTLIST
+</li></li></ul>
+</td>
+
+
+<td>EventPtr</td><td>MONO_TABLE_EVENT_POINTER</td><td>
+Array size: 
+MONO_EVENT_POINTER_SIZE
+<ul>
+	<li>MONO_EVENT_POINTER_EVENT
+</li></ul>
+</td>
+
+
+<td>Event</td><td>MONO_TABLE_EVENT</td><td>
+Array size:  MONO_EVENT_SIZE
+<ul>
+	<li>MONO_EVENT_FLAGS
+	<li>MONO_EVENT_NAME
+	<li>MONO_EVENT_TYPE
+</li></li></li></ul>
+</td>
+
+
+<td>ExportedType</td><td>MONO_TABLE_EXPORTEDTYPE</td><td>
+Array size: 
+MONO_EXPORTEDTYPE_SIZE
+<ul>
+	<li>MONO_EXP_TYPE_FLAGS
+	<li>MONO_EXP_TYPE_TYPEDEF
+	<li>MONO_EXP_TYPE_NAME
+	<li>MONO_EXP_TYPE_NAMESPACE
+	<li>MONO_EXP_TYPE_IMPLEMENTATION
+</li></li></li></li></li></ul>
+</td>
+
+
+<td>Field</td><td>MONO_TABLE_FIELD</td><td>
+Array size:  MONO_FIELD_SIZE
+<ul>
+	<li>MONO_FIELD_FLAGS
+	<li>MONO_FIELD_NAME
+	<li>MONO_FIELD_SIGNATURE
+</li></li></li></ul>
+</td>
+
+
+<td>FieldLayoutt</td><td>MONO_TABLE_FIELDLAYOUT</td><td>
+Array size: 
+MONO_FIELDLAYOUT_SIZE
+<ul>
+	<li>MONO_FIELD_LAYOUT_OFFSET
+	<li>MONO_FIELD_LAYOUT_FIELD
+</li></li></ul>
+</td>
+
+
+<td>FieldMarshal</td><td>MONO_TABLE_FIELDMARSHAL</td><td>
+Array size: 
+MONO_FIELD_MARSHAL_SIZE
+<ul>
+	<li>MONO_FIELD_MARSHAL_PARENT
+	<li>MONO_FIELD_MARSHAL_NATIVE_TYPE
+</li></li></ul>
+</td>
+
+
+<td>FieldPtr</td><td>MONO_TABLE_FIELD_POINTER</td><td>
+Array size: 
+MONO_FIELD_POINTER_SIZE
+<ul>
+	<li>MONO_FIELD_POINTER_FIELD
+</li></ul>
+</td>
+
+
+<td>FieldRVA</td><td>MONO_TABLE_FIELDRVA</td><td>
+Array size: 
+MONO_FIELDRVA_SIZE
+<ul>
+	<li>MONO_FIELD_RVA_RVA
+	<li>MONO_FIELD_RVA_FIELD
+</li></li></ul>
+</td>
+
+
+<td>File</td><td>MONO_TABLE_FILE</td><td>
+Array size:  MONO_FILE_SIZE
+<ul>
+	<li>MONO_FILE_FLAGS
+	<li>MONO_FILE_NAME
+	<li>MONO_FILE_HASH_VALUE
+</li></li></li></ul>
+</td>
+
+
+<td>GenericParam</td><td>MONO_TABLE_GENERICPARAM</td><td>
+Array size: 
+MONO_GENERICPARAM_SIZE
+<ul>
+	<li>MONO_GENERICPARAM_NUMBER
+	<li>MONO_GENERICPARAM_FLAGS
+	<li>MONO_GENERICPARAM_OWNER
+	<li>MONO_GENERICPARAM_NAME
+</li></li></li></li></ul>
+</td>
+
+
+<td>GenericParamConstraint</td><td>MONO_TABLE_GENERICPARAMCONSTRAINT</td><td>Array
+size: MONO_GENERICPARAMCONSTRAINT_SIZE
+<ul>
+	<li>MONO_GENPARCONSTRAINT_GENERICPAR
+	<li>MONO_GENPARCONSTRAINT_CONSTRAINT
+</li></li></ul>
+</td>
+
+<tr>
+<td>ImplMap</td><td>MONO_TABLE_IMPLMAP</td><td>
+Array size: 
+MONO_IMPLMAP_SIZE
+<ul>
+	<li>MONO_IMPLMAP_FLAGS
+	<li>MONO_IMPLMAP_MEMBER
+	<li>MONO_IMPLMAP_NAME
+	<li>MONO_IMPLMAP_SCOPE
+</li></li></li></li></ul>
+</td>
+</tr>
+
+
+<td>InterfaceImpl</td><td>MONO_TABLE_INTERFACEIMPL</td><td>
+Array size: 
+	<li>MONO_INTERFACEIMPL_SIZE
+<ul>
+	<li>MONO_INTERFACEIMPL_CLASS
+	<li>MONO_INTERFACEIMPL_INTERFACE
+</li></li></ul>
+</li></td>
+
+
+
+<td>ManifestResource</td><td>MONO_TABLE_MANIFESTRESOURCE</td><td>Array
+size: MONO_MANIFESTRESOURCE_SIZE
+<ul>
+	<li>MONO_MANIFEST_OFFSET
+	<li>MONO_MANIFEST_FLAGS
+	<li>MONO_MANIFEST_NAME
+	<li>MONO_MANIFEST_IMPLEMENTATION
+</li></li></li></li></ul>
+</td>
+
+
+<tr>
+<td>MemberRef</td><td>MONO_TABLE_MEMBERREF</td><td>
+Array size: 
+MONO_MEMBERREF_SIZE
+<ul>
+	<li>MONO_MEMBERREF_CLASS
+	<li>MONO_MEMBERREF_NAME
+	<li>MONO_MEMBERREF_SIGNATURE
+</li></li></li></ul>
+</td>
+</tr>
+
+<td>MethodImpl</td><td>MONO_TABLE_METHODIMPL</td><td>
+Array size: 
+MONO_METHODIMPL_SIZE
+<ul>
+	<li>MONO_METHODIMPL_CLASS
+	<li>MONO_METHODIMPL_BODY
+	<li>MONO_METHODIMPL_DECLARATION
+</li></li></li></ul>
+</td>
+
+
+
+<td>MethodSpec</td><td>MONO_TABLE_METHODSPEC</td><td>
+Array size: 
+MONO_METHODSPEC_SIZE
+<ul>
+	<li>MONO_METHODSPEC_METHOD
+	<li>MONO_METHODSPEC_SIGNATURE
+</li></li></ul>
+</td>
+
+<tr>
+<td>MethodSemantics</td><td>MONO_TABLE_METHODSEMANTICS</td><td>Array
+size: MONO_METHOD_SEMA_SIZE
+<ul>
+	<li>MONO_METHOD_SEMA_SEMANTICS
+	<li>MONO_METHOD_SEMA_METHOD
+	<li>MONO_METHOD_SEMA_ASSOCIATION
+</li></li></li></ul>
+</td>
+</tr>
+
+<td>Moduleref</td><td>MONO_TABLE_MODULEREF</td><td>
+Array size: 
+MONO_MODULEREF_SIZE
+<ul>
+	<li>MONO_MODULEREF_NAME
+</li></ul>
+</td>
+
+
+<tr>
+<td>Module</td><td>MONO_TABLE_MODULE</td><td>
+Array size: 
+MONO_MODULE_SIZE
+<br />
+Columns:
+<ul>
+	<li>MONO_MODULE_GENERATION
+	<li>MONO_MODULE_NAME
+	<li>MONO_MODULE_MVID
+	<li>MONO_MODULE_ENC
+	<li>MONO_MODULE_ENCBASE
+</li></li></li></li></li></ul>
+</td>
+</tr>
+
+<td>TypeRef</td><td>MONO_TABLE_TYPEREF</td><td>
+Array size: 
+MONO_TYPEREF_SIZE
+<ul>
+	<li>MONO_TYPEREF_SCOPE
+	<li>MONO_TYPEREF_NAME
+	<li>MONO_TYPEREF_NAMESPACE
+</li></li></li></ul>
+</td>
+
+
+<tr>
+<td>MethodPtr</td><td>MONO_TABLE_METHOD_POINTER</td><td>
+Array size: 
+MONO_METHOD_POINTER_SIZE
+<ul>
+	<li>MONO_METHOD_POINTER_METHOD
+</li></ul>
+</td>
+</tr>
+
+<td>Method</td><td>MONO_TABLE_METHOD</td><td>
+Array size: 
+MONO_METHOD_SIZE
+<ul>
+	<li>MONO_METHOD_RVA
+	<li>MONO_METHOD_IMPLFLAGS
+	<li>MONO_METHOD_FLAGS
+	<li>MONO_METHOD_NAME
+	<li>MONO_METHOD_SIGNATURE
+	<li>MONO_METHOD_PARAMLIST
+</li></li></li></li></li></li></ul>
+</td>
+
+
+<tr>
+<td>NestedClass</td><td>MONO_TABLE_NESTEDCLASS</td><td>
+Array size: 
+MONO_NESTEDCLASS_SIZE
+<ul>
+	<li>MONO_NESTED_CLASS_NESTED
+	<li>MONO_NESTED_CLASS_ENCLOSING
+</li></li></ul>
+</td>
+</tr>
+
+<tr>
+<td>ParamPtr</td><td>MONO_TABLE_PARAM_POINTER</td><td>
+Array size: 
+MONO_PARAM_POINTER_SIZE
+<ul>
+	<li>MONO_PARAM_POINTER_PARAM
+</li></ul>
+</td>
+</tr>
+
+<td>Param</td><td>MONO_TABLE_PARAM</td><td>
+Array size:  MONO_PARAM_SIZE
+<ul>
+	<li>MONO_PARAM_FLAGS
+	<li>MONO_PARAM_SEQUENCE
+	<li>MONO_PARAM_NAME
+</li></li></li></ul>
+</td>
+
+
+<td>PropertyMap</td><td>MONO_TABLE_PROPERTYMAP</td><td>
+Array size: 
+MONO_PROPERTY_MAP_SIZE
+<ul>
+	<li>MONO_PROPERTY_MAP_PARENT
+	<li>MONO_PROPERTY_MAP_PROPERTY_LIST
+</li></li></ul>
+</td>
+
+
+<td>PropertyPtr</td><td>MONO_TABLE_PROPERTY_POINTER</td><td>Array
+size: MONO_PROPERTY_POINTER_SIZE
+<ul>
+	<li>MONO_PROPERTY_POINTER_PROPERTY
+</li></ul>
+</td>
+
+
+<td>Property</td><td>MONO_TABLE_PROPERTY</td><td>
+Array size: 
+MONO_PROPERTY_SIZE
+<ul>
+	<li>MONO_PROPERTY_FLAGS
+	<li>MONO_PROPERTY_NAME
+	<li>MONO_PROPERTY_TYPE
+</li></li></li></ul>
+</td>
+
+<tr>
+<td>StandaloneSig</td><td>MONO_TABLE_STANDALONESIG</td><td>
+Array size: 
+	<li>MONO_STAND_ALONE_SIGNATURE_SIZE
+<ul>
+	<li>MONO_STAND_ALONE_SIGNATURE
+</li></ul>
+</li></td>
+</tr>
+
+<tr>
+<td>TypeDef</td><td>MONO_TABLE_TYPEDEF</td><td>
+Array size: 
+MONO_TYPEDEF_SIZE
+<ul>
+	<li>MONO_TYPEDEF_FLAGS
+	<li>MONO_TYPEDEF_NAME
+	<li>MONO_TYPEDEF_NAMESPACE
+	<li>MONO_TYPEDEF_EXTENDS
+	<li>MONO_TYPEDEF_FIELD_LIST
+	<li>MONO_TYPEDEF_METHOD_LIST
+</li></li></li></li></li></li></ul>
+</td>
+</tr>
+
+<tr>
+<td>TypeSpec</td><td>MONO_TABLE_TYPESPEC</td><td>
+Array size: 
+MONO_TYPESPEC_SIZE
+<ul>
+	<li>MONO_TYPESPEC_SIGNATURE
+</li></ul>
+</td>
+</tr>
+
+	</table>
+	</center>
+
+	<p />Each table can contain zero or more rows, you must call the
+	<a href="#api:mono_metadata_table_rows">mono_metadata_table_rows</a>
+	to obtain the number of rows in a table, and then you can
+	extract individual row values by using
+	the <a href="#api:mono_metadata_decode_row">mono_metadata_decode_row</a>
+	or
+	the <a href="#api:mono_metadata_decode_row_col">mono_metadata_decode_row_col</a>.
+	When decoding rows you must provide an guint32 array large
+	enough to hold as many columns as the table contains.
+	
+	<p />The metadata tables are stored in the MonoImage, you obtain
+	a pointer to the MonoTableInfo by calling
+	the <a href="#api:mono_image_get_table_info">mono_image_get_table_info</a>
+	and then you can scan those tables, for example:
+
+	<pre class="prettyprint">
+	/*
+	 * Dumps a few fields from the AssemblyRef table
+	 */
+	void DumpAssemblyRefs (MonoImage *image)
+	{
+		/* Get a pointer to the AssemblyRef metadata table */
+		MonoTableInfo *t = mono_image_get_table_info (image, MONO_TABLE_ASSEMBLYREF);
+
+		/* Fetch the number of rows available in the table */
+		int rows = mono_table_info_get_rows (t);
+		int i;
+
+		/* For each row, print some of its values */
+		for (i = 0; i < rows; i++){
+			/* Space where we extract one row from the metadata table */
+			guint32 cols [MONO_ASSEMBLYREF_SIZE];
+
+			/* Extract the row into the array cols */
+			mono_metadata_decode_row (t, i, cols, MONO_ASSEMBLYREF_SIZE);
+
+			fprintf (output, "%d: Version=%d.%d.%d.%d\n\tName=%s\n", i + 1,
+                        	cols [MONO_ASSEMBLYREF_MAJOR_VERSION],
+                        	cols [MONO_ASSEMBLYREF_MINOR_VERSION],
+                        	cols [MONO_ASSEMBLYREF_BUILD_NUMBER],
+                        	cols [MONO_ASSEMBLYREF_REV_NUMBER],
+                        	mono_metadata_string_heap (image, cols [MONO_ASSEMBLYREF_NAME]));
+		}
+	}
+	</pre>
+
+	<p />The above program shows the following output when ran on
+	the C# compiler:
+
+	<pre>
+	1: Version=1.0.5000.0
+		Name=mscorlib
+	2: Version=1.0.5000.0
+		Name=System
+	3: Version=1.0.5000.0
+		Name=System.Xml
+	</pre>
+
+	<p />
+
+<h3>Metadata Tables API</h3>
+
+	<p />These are the APIs for dealing with tables:
+
+ <a name="api:mono_image_get_table_info"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_get_table_info</div>
+
+    <div class="prototype">Prototype: mono_image_get_table_info</div>
+<p />
+
+</div> <a name="api:mono_image_get_table_rows"></a>
+ <div class="api">
+    <div class="api-entry">mono_image_get_table_rows</div>
+
+    <div class="prototype">Prototype: mono_image_get_table_rows</div>
+<p />
+
+</div> <a name="api:mono_metadata_get_table"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_get_table</div>
+
+    <div class="prototype">Prototype: mono_metadata_get_table</div>
+<p />
+
+</div> <a name="api:mono_meta_table_name"></a>
+ <div class="api">
+    <div class="api-entry">mono_meta_table_name</div>
+
+    <div class="prototype">const char *
+mono_meta_table_name (int table)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>table:</i></dt><dd> table index</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the name for the <i>table</i> index
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Returns the name of the given ECMA metadata logical format table
+	 as described in ECMA 335, Partition II, Section 22.
+	
+<p />
+
+</div> <a name="api:mono_metadata_decode_row_col"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_decode_row_col</div>
+
+    <div class="prototype">guint32
+mono_metadata_decode_row_col (const MonoTableInfo *t, int idx, guint col)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>t:</i></dt><dd> table to extract information from.</dd><dt><i>idx:</i></dt><dd> index for row in table.</dd><dt><i>col:</i></dt><dd> column in the row.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This function returns the value of column <i>col</i> from the <i>idx</i>
+	 row in the table <i>t</i>.
+
+</div> <a name="api:mono_metadata_decode_row"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_decode_row</div>
+
+    <div class="prototype">void
+mono_metadata_decode_row (const MonoTableInfo *t, int idx, guint32 *res, int res_size)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>t:</i></dt><dd> table to extract information from.</dd><dt><i>idx:</i></dt><dd> index in table.</dd><dt><i>res:</i></dt><dd> array of <i>res_size</i> cols to store the results in</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This decompresses the metadata element <i>idx</i> in table <i>t</i>
+	 into the guint32 <i>res</i> array that has res_size elements
+
+</div> <a name="api:mono_metadata_compute_size"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_compute_size</div>
+
+    <div class="prototype">Prototype: mono_metadata_compute_size</div>
+<p />
+
+</div> <a name="api:mono_metadata_custom_attrs_from_index"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_custom_attrs_from_index</div>
+
+    <div class="prototype">Prototype: mono_metadata_custom_attrs_from_index</div>
+<p />
+
+</div> <a name="api:mono_metadata_decode_signed_value"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_decode_signed_value</div>
+
+    <div class="prototype">gint32
+mono_metadata_decode_signed_value (const char *ptr, const char **rptr)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>ptr:</i></dt><dd> pointer to decode from</dd><dt><i>rptr:</i></dt><dd> the new position of the pointer</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the decoded value
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 This routine decompresses 32-bit signed values
+	 (not specified in the spec)
+	
+
+</div> <a name="api:mono_metadata_decode_value"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_decode_value</div>
+
+    <div class="prototype">guint32
+mono_metadata_decode_value (const char *_ptr, const char **rptr)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>ptr:</i></dt><dd> pointer to decode from</dd><dt><i>rptr:</i></dt><dd> the new position of the pointer</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the decoded value
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 This routine decompresses 32-bit values as specified in the "Blob and
+	 Signature" section (22.2)
+	
+
+</div> <a name="api:mono_metadata_encode_value"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_encode_value</div>
+
+    <div class="prototype">Prototype: mono_metadata_encode_value</div>
+<p />
+
+	
+</div><h2>Metadata access API</h2>
+
+	<p />This is the low-level API for accessing the metadata
+	images.
+	
+ <a name="api:mono_cli_rva_image_map"></a>
+ <div class="api">
+    <div class="api-entry">mono_cli_rva_image_map</div>
+
+    <div class="prototype">Prototype: mono_cli_rva_image_map</div>
+<p />
+
+</div> <a name="api:mono_pe_file_open"></a>
+ <div class="api">
+    <div class="api-entry">mono_pe_file_open</div>
+
+    <div class="prototype">MonoImage*
+mono_pe_file_open (const char *fname, MonoImageOpenStatus *status)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>fname:</i></dt><dd> filename that points to the module we want to open</dd><dt><i>status:</i></dt><dd> An error condition is returned in this field</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  An open image of type %MonoImage or NULL on error.  if
+
+	 NULL, then check the value of <i>status</i> for details on the error.
+	 This variant for mono_image_open DOES NOT SET UP CLI METADATA.
+	 It's just a PE file loader, used for FileVersionInfo.  It also does
+	 not use the image cache.</blockquote>
+
+</div> <a name="api:mono_metadata_events_from_typedef"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_events_from_typedef</div>
+
+    <div class="prototype">Prototype: mono_metadata_events_from_typedef</div>
+<p />
+
+</div> <a name="api:mono_metadata_field_info"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_field_info</div>
+
+    <div class="prototype">Prototype: mono_metadata_field_info</div>
+<p />
+
+</div> <a name="api:mono_metadata_free_array"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_free_array</div>
+
+    <div class="prototype">Prototype: mono_metadata_free_array</div>
+<p />
+
+</div> <a name="api:mono_metadata_free_marshal_spec"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_free_marshal_spec</div>
+
+    <div class="prototype">Prototype: mono_metadata_free_marshal_spec</div>
+<p />
+
+</div> <a name="api:mono_metadata_free_mh"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_free_mh</div>
+
+    <div class="prototype">Prototype: mono_metadata_free_mh</div>
+<p />
+
+</div> <a name="api:mono_metadata_free_type"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_free_type</div>
+
+    <div class="prototype">Prototype: mono_metadata_free_type</div>
+<p />
+
+</div> <a name="api:mono_metadata_get_constant_index"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_get_constant_index</div>
+
+    <div class="prototype">Prototype: mono_metadata_get_constant_index</div>
+<p />
+
+</div> <a name="api:mono_metadata_get_marshal_info"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_get_marshal_info</div>
+
+    <div class="prototype">Prototype: mono_metadata_get_marshal_info</div>
+<p />
+
+</div> <a name="api:mono_metadata_implmap_from_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_implmap_from_method</div>
+
+    <div class="prototype">Prototype: mono_metadata_implmap_from_method</div>
+<p />
+
+</div> <a name="api:mono_metadata_interfaces_from_typedef_full"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_interfaces_from_typedef_full</div>
+
+    <div class="prototype">Prototype: mono_metadata_interfaces_from_typedef_full</div>
+<p />
+
+</div> <a name="api:mono_metadata_interfaces_from_typedef"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_interfaces_from_typedef</div>
+
+    <div class="prototype">Prototype: mono_metadata_interfaces_from_typedef</div>
+<p />
+
+</div> <a name="api:mono_metadata_locate"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_locate</div>
+
+    <div class="prototype">const char *
+mono_metadata_locate (MonoImage *meta, int table, int idx)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>meta:</i></dt><dd> metadata context</dd><dt><i>table:</i></dt><dd> table code.</dd><dt><i>idx:</i></dt><dd> index of element to retrieve from <i>table</i>.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a pointer to the <i>idx</i> element in the metadata table
+
+	 whose code is <i>table</i>.</blockquote>
+
+</div> <a name="api:mono_metadata_locate_token"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_locate_token</div>
+
+    <div class="prototype">const char *
+mono_metadata_locate_token (MonoImage *meta, guint32 token)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>meta:</i></dt><dd> metadata context</dd><dt><i>token:</i></dt><dd> metadata token</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a pointer to the data in the metadata represented by the
+
+	 token <i>token</i>.</blockquote>
+
+</div> <a name="api:mono_metadata_methods_from_event"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_methods_from_event</div>
+
+    <div class="prototype">Prototype: mono_metadata_methods_from_event</div>
+<p />
+
+</div> <a name="api:mono_metadata_methods_from_property"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_methods_from_property</div>
+
+    <div class="prototype">Prototype: mono_metadata_methods_from_property</div>
+<p />
+
+</div> <a name="api:mono_metadata_nested_in_typedef"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_nested_in_typedef</div>
+
+    <div class="prototype">Prototype: mono_metadata_nested_in_typedef</div>
+<p />
+
+</div> <a name="api:mono_metadata_nesting_typedef"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_nesting_typedef</div>
+
+    <div class="prototype">Prototype: mono_metadata_nesting_typedef</div>
+<p />
+
+</div> <a name="api:mono_metadata_packing_from_typedef"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_packing_from_typedef</div>
+
+    <div class="prototype">Prototype: mono_metadata_packing_from_typedef</div>
+<p />
+
+</div> <a name="api:mono_metadata_properties_from_typedef"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_properties_from_typedef</div>
+
+    <div class="prototype">Prototype: mono_metadata_properties_from_typedef</div>
+<p />
+
+</div> <a name="api:mono_metadata_token_from_dor"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_token_from_dor</div>
+
+    <div class="prototype">Prototype: mono_metadata_token_from_dor</div>
+<p />
+
+</div> <a name="api:mono_metadata_typedef_from_field"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_typedef_from_field</div>
+
+    <div class="prototype">guint32
+mono_metadata_typedef_from_field (MonoImage *meta, guint32 index)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>meta:</i></dt><dd> metadata context</dd><dt><i>index:</i></dt><dd> FieldDef token</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the 1-based index into the TypeDef table of the type that
+
+	 declared the field described by <i>index</i>, or 0 if not found.</blockquote>
+
+</div> <a name="api:mono_metadata_typedef_from_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_typedef_from_method</div>
+
+    <div class="prototype">Prototype: mono_metadata_typedef_from_method</div>
+<p />
+
+</div> <a name="api:mono_metadata_type_equal"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_type_equal</div>
+
+    <div class="prototype">Prototype: mono_metadata_type_equal</div>
+<p />
+
+</div> <a name="api:mono_metadata_type_hash"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_type_hash</div>
+
+    <div class="prototype">Prototype: mono_metadata_type_hash</div>
+<p />
+
+</div> <a name="api:mono_metadata_declsec_from_index"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_declsec_from_index</div>
+
+    <div class="prototype">Prototype: mono_metadata_declsec_from_index</div>
+<p />
+
+</div> <a name="api:mono_metadata_free_method_signature"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_free_method_signature</div>
+
+    <div class="prototype">Prototype: mono_metadata_free_method_signature</div>
+<p />
+
+
+</div><h3>Retrieving Objects from Tokens</h3>
+
+ <a name="api:mono_metadata_parse_custom_mod"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_parse_custom_mod</div>
+
+    <div class="prototype">Prototype: mono_metadata_parse_custom_mod</div>
+<p />
+
+</div> <a name="api:mono_metadata_parse_field_type"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_parse_field_type</div>
+
+    <div class="prototype">MonoType*
+mono_metadata_parse_field_type (MonoImage *m, short field_flags, const char *ptr, const char **rptr)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>m:</i></dt><dd> metadata context to extract information from</dd><dt><i>ptr:</i></dt><dd> pointer to the field signature</dd><dt><i>rptr:</i></dt><dd> pointer updated to match the end of the decoded stream</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  The MonoType that was extracted from <i>ptr</i>.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Parses the field signature, and returns the type information for it. 
+	
+
+</div> <a name="api:mono_metadata_parse_marshal_spec"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_parse_marshal_spec</div>
+
+    <div class="prototype">Prototype: mono_metadata_parse_marshal_spec</div>
+<p />
+
+</div> <a name="api:mono_metadata_parse_method_signature_full"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_parse_method_signature_full</div>
+
+    <div class="prototype">Prototype: mono_metadata_parse_method_signature_full</div>
+<p />
+
+</div> <a name="api:mono_metadata_parse_method_signature"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_parse_method_signature</div>
+
+    <div class="prototype">Prototype: mono_metadata_parse_method_signature</div>
+<p />
+
+</div> <a name="api:mono_metadata_parse_mh_full"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_parse_mh_full</div>
+
+    <div class="prototype">Prototype: mono_metadata_parse_mh_full</div>
+<p />
+
+</div> <a name="api:mono_metadata_parse_mh"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_parse_mh</div>
+
+    <div class="prototype">Prototype: mono_metadata_parse_mh</div>
+<p />
+
+</div> <a name="api:mono_metadata_parse_param"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_parse_param</div>
+
+    <div class="prototype">MonoType*
+mono_metadata_parse_param (MonoImage *m, const char *ptr, const char **rptr)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>m:</i></dt><dd> metadata context to extract information from</dd><dt><i>ptr:</i></dt><dd> pointer to the param signature</dd><dt><i>rptr:</i></dt><dd> pointer updated to match the end of the decoded stream</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  The MonoType that was extracted from <i>ptr</i>.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Parses the param signature, and returns the type information for it. 
+	
+
+</div> <a name="api:mono_metadata_parse_signature_full"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_parse_signature_full</div>
+
+    <div class="prototype">Prototype: mono_metadata_parse_signature_full</div>
+<p />
+
+</div> <a name="api:mono_metadata_parse_signature"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_parse_signature</div>
+
+    <div class="prototype">Prototype: mono_metadata_parse_signature</div>
+<p />
+
+</div> <a name="api:mono_metadata_parse_typedef_or_ref"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_parse_typedef_or_ref</div>
+
+    <div class="prototype">Prototype: mono_metadata_parse_typedef_or_ref</div>
+<p />
+
+</div> <a name="api:mono_metadata_parse_type_full"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_parse_type_full</div>
+
+    <div class="prototype">Prototype: mono_metadata_parse_type_full</div>
+<p />
+
+</div> <a name="api:mono_metadata_parse_type"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_parse_type</div>
+
+    <div class="prototype">MonoType*
+mono_metadata_parse_type_full (MonoImage *m, MonoGenericContainer *container, MonoParseTypeMode mode,
+			       short opt_attrs, const char *ptr, const char **rptr)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>m:</i></dt><dd> metadata context</dd><dt><i>mode:</i></dt><dd> king of type that may be found at <i>ptr</i></dd><dt><i>opt_attrs:</i></dt><dd> optional attributes to store in the returned type</dd><dt><i>ptr:</i></dt><dd> pointer to the type representation</dd><dt><i>rptr:</i></dt><dd> pointer updated to match the end of the decoded stream</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a <i>MonoType</i> structure representing the decoded type.
+</blockquote>
+<b>Remarks</b>
+<p />	 <p />
+
+	 Decode a compressed type description found at <i>ptr</i> in <i>m</i>.
+	 <i>mode</i> can be one of MONO_PARSE_MOD_TYPE, MONO_PARSE_PARAM, MONO_PARSE_RET,
+	 MONO_PARSE_FIELD, MONO_PARSE_LOCAL, MONO_PARSE_TYPE.
+	 This function can be used to decode type descriptions in method signatures,
+	 field signatures, locals signatures etc.
+	
+	 To parse a generic type, `generic_container' points to the current class'es
+	 (the `generic_container' field in the MonoClass) or the current generic method's
+	 (the `generic_container' field in the MonoMethodNormal) generic container.
+	 When we encounter any MONO_TYPE_VAR or MONO_TYPE_MVAR's, they're looked up in
+	 this MonoGenericContainer.
+	 This is a Mono runtime internal function.
+	
+	 LOCKING: Acquires the loader lock.
+	
+
+
+</div><h2>Metadata Loader Locking</h2>
+
+	<p />The locking functions here are used by code in class.c and
+	metadata.c to lock access to the shared hashtables inside the
+	MonoImage.
+	
+ <a name="api:mono_loader_lock"></a>
+ <div class="api">
+    <div class="api-entry">mono_loader_lock</div>
+
+    <div class="prototype">Prototype: mono_loader_lock</div>
+<p />
+
+</div> <a name="api:mono_loader_unlock"></a>
+ <div class="api">
+    <div class="api-entry">mono_loader_unlock</div>
+
+    <div class="prototype">Prototype: mono_loader_unlock</div>
+<p />
+
+
+</div><h2>Generics Support</h2>
+
+ <a name="api:mono_metadata_generic_class_is_valuetype"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_generic_class_is_valuetype</div>
+
+    <div class="prototype">Prototype: mono_metadata_generic_class_is_valuetype</div>
+<p />
+
+</div> <a name="api:mono_metadata_has_generic_params"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_has_generic_params</div>
+
+    <div class="prototype">Prototype: mono_metadata_has_generic_params</div>
+<p />
+
+</div> <a name="api:mono_metadata_inflate_generic_inst"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_inflate_generic_inst</div>
+
+    <div class="prototype">Prototype: mono_metadata_inflate_generic_inst</div>
+<p />
+
+</div> <a name="api:mono_metadata_parse_generic_inst"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_parse_generic_inst</div>
+
+    <div class="prototype">Prototype: mono_metadata_parse_generic_inst</div>
+<p />
+
+</div> <a name="api:mono_metadata_generic_inst_equal"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_generic_inst_equal</div>
+
+    <div class="prototype">Prototype: mono_metadata_generic_inst_equal</div>
+<p />
+
+</div> <a name="api:mono_metadata_generic_inst_hash"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_generic_inst_hash</div>
+
+    <div class="prototype">Prototype: mono_metadata_generic_inst_hash</div>
+<p />
+
+</div> <a name="api:mono_metadata_load_generic_params"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_load_generic_params</div>
+
+    <div class="prototype">Prototype: mono_metadata_load_generic_params</div>
+<p />
+
+</div> <a name="api:mono_metadata_generic_inst_is_valuetype"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_generic_inst_is_valuetype</div>
+
+    <div class="prototype">Prototype: mono_metadata_generic_inst_is_valuetype</div>
+<p />
+
+</div> <a name="api:mono_metadata_generic_method_equal"></a>
+ <div class="api">
+    <div class="api-entry">mono_metadata_generic_method_equal</div>
+
+    <div class="prototype">Prototype: mono_metadata_generic_method_equal</div>
+<p />
+
+
+</div><h2>Tokens</h2>
+
+ <a name="api:mono_ldtoken"></a>
+ <div class="api">
+    <div class="api-entry">mono_ldtoken</div>
+
+    <div class="prototype">Prototype: mono_ldtoken</div>
+<p />
+
+</div> <a name="api:mono_lookup_dynamic_token"></a>
+ <div class="api">
+    <div class="api-entry">mono_lookup_dynamic_token</div>
+
+    <div class="prototype">Prototype: mono_lookup_dynamic_token</div>
+<p />
+
+</div> <a name="api:mono_ldstr"></a>
+ <div class="api">
+    <div class="api-entry">mono_ldstr</div>
+
+    <div class="prototype">MonoString*
+mono_ldstr (MonoDomain *domain, MonoImage *image, guint32 idx)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>domain:</i></dt><dd> the domain where the string will be used.</dd><dt><i>image:</i></dt><dd> a metadata context</dd><dt><i>idx:</i></dt><dd> index into the user string table.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a loaded string from the <i>image</i>/<i>idx</i> combination.
+</blockquote>
+<b>Remarks</b>
+<p />	 <p />
+
+	 Implementation for the ldstr opcode.
+
+</div> <a name="api:mono_exception_from_token"></a>
+ <div class="api">
+    <div class="api-entry">mono_exception_from_token</div>
+
+    <div class="prototype">MonoException*
+mono_exception_from_token (MonoImage *image, guint32 token)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>image:</i></dt><dd> the Mono image where to look for the class</dd><dt><i>token:</i></dt><dd> The type token of the class</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the initialized exception instance.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Creates an exception of the type given by <i>token</i>.
+	
+
+</div> <a name="api:mono_create_jit_trampoline_from_token"></a>
+ <div class="api">
+    <div class="api-entry">mono_create_jit_trampoline_from_token</div>
+
+    <div class="prototype">Prototype: mono_create_jit_trampoline_from_token</div>
+<p />
+
+
+</div><h2>OpCodes</h2>
+
+ <a name="api:mono_opcode_name"></a>
+ <div class="api">
+    <div class="api-entry">mono_opcode_name</div>
+
+    <div class="prototype">Prototype: mono_opcode_name</div>
+<p />
+
+</div> <a name="api:mono_opcode_value"></a>
+ <div class="api">
+    <div class="api-entry">mono_opcode_value</div>
+
+    <div class="prototype">Prototype: mono_opcode_value</div>
+<p />
+
+
+</div><h2>Metadata Loading Errors</h2>
+
+	<p />The routines in this section are used to cope with errors
+	during metadata loading.  Errors in metadata handling can
+	happen for many reason, and these include (this is not an
+	exhaustive list).
+
+	<ul>
+		<li>An assembly referenced is missing.
+		<li>Fields referenced are missing.
+		<li>Methods referenced are missing.
+	</li></li></li></ul>
+
+	<p />The <tt>mono_loader_set_*</tt> routines are invoked during
+	metadata loading to flag that an error has happened.  The
+	class loading errros are flagged in a per-thread basis.
+
+	<p />In various spots in the runtime the
+	<tt>mono_loader_get_last_error</tt> routine is called to check
+	if there was a problem, and then errors are propagated upwards
+	on the stack until we reach a point where an exception can be
+	raised and no runtime locks are held.
+
+	<p />The <tt>mono_loader_error_prepare_exception</tt> takes a
+	<tt>MonoLoaderError</tt> structure (the value returned from
+	<tt>mono_loader_get_last_error</tt>), turns that into an
+	exception and clears the error condition from the current
+	thread. 
+	
+ <a name="api:mono_loader_set_error_field_load"></a>
+ <div class="api">
+    <div class="api-entry">mono_loader_set_error_field_load</div>
+
+    <div class="prototype">Prototype: mono_loader_set_error_field_load</div>
+<p />
+
+</div> <a name="api:mono_loader_set_error_method_load"></a>
+ <div class="api">
+    <div class="api-entry">mono_loader_set_error_method_load</div>
+
+    <div class="prototype">Prototype: mono_loader_set_error_method_load</div>
+<p />
+
+</div> <a name="api:mono_loader_set_error_type_load"></a>
+ <div class="api">
+    <div class="api-entry">mono_loader_set_error_type_load</div>
+
+    <div class="prototype">void
+mono_loader_set_error_type_load (const char *class_name, const char *assembly_name)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+	 Set the loader error for this thread. 
+
+
+</div> <a name="api:mono_loader_get_last_error"></a>
+ <div class="api">
+    <div class="api-entry">mono_loader_get_last_error</div>
+
+    <div class="prototype">Prototype: mono_loader_get_last_error</div>
+<p />
+
+</div> <a name="api:mono_loader_clear_error"></a>
+ <div class="api">
+    <div class="api-entry">mono_loader_clear_error</div>
+
+    <div class="prototype">void
+mono_loader_clear_error (void)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+	 Disposes any loader error messages on this thread
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-methods.html b/docs/deploy/mono-api-methods.html
new file mode 100644
index 0000000..e726d03
--- /dev/null
+++ b/docs/deploy/mono-api-methods.html
@@ -0,0 +1,547 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-methods.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h3>Methods</h3>
+
+<h3>Invoking Methods</h3>
+
+ <a name="api:mono_runtime_invoke"></a>
+ <div class="api">
+    <div class="api-entry">mono_runtime_invoke</div>
+
+    <div class="prototype">MonoObject*
+mono_runtime_invoke (MonoMethod *method, void *obj, void **params, MonoObject **exc)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>method:</i></dt><dd> method to invoke</dd><dt><i>obJ:</i></dt><dd> object instance</dd><dt><i>params:</i></dt><dd> arguments to the method</dd><dt><i>exc:</i></dt><dd> exception information.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Invokes the method represented by <i>method</i> on the object <i>obj</i>.
+	
+	 obj is the 'this' pointer, it should be NULL for static
+	 methods, a MonoObject* for object instances and a pointer to
+	 the value type for value types.
+	
+	 The params array contains the arguments to the method with the
+	 same convention: MonoObject* pointers for object instances and
+	 pointers to the value type otherwise. 
+	
+<p />
+	 From unmanaged code you'll usually use the
+	 mono_runtime_invoke() variant.
+	
+	 Note that this function doesn't handle virtual methods for
+	 you, it will exec the exact method you pass: we still need to
+	 expose a function to lookup the derived class implementation
+	 of a virtual method (there are examples of this in the code,
+	 though).
+	
+<p />
+	 You can pass NULL as the exc argument if you don't want to
+	 catch exceptions, otherwise, *exc will be set to the exception
+	 thrown, if any.  if an exception is thrown, you can't use the
+	 MonoObject* result from the function.
+	
+<p />
+	 If the method returns a value type, it is boxed in an object
+	 reference.
+
+
+If you want to invoke generic methods, you must call the method on the
+"inflated" class, which you can obtain from the
+<tt>mono_object_get_class()</tt>
+
+<div class="code">
+MonoClass *clazz;
+MonoMethod *method;
+
+clazz = mono_object_get_class (obj);
+
+/*
+ * If there are more Add methods declared, you
+ * may use mono_method_desc_search_in_class (clazz, ":Add(T)"),
+ * you must substitute ":Add(T)" with the correct type, for example
+ * for List<int>, you would use ":Add(int)".
+ */
+method = mono_class_get_method_from_name (clazz, "Add", 1);
+mono_runtime_invoke (method, obj, args, &exception);
+</div>
+
+
+</div> <a name="api:mono_runtime_invoke_array"></a>
+ <div class="api">
+    <div class="api-entry">mono_runtime_invoke_array</div>
+
+    <div class="prototype">MonoObject*
+mono_runtime_invoke_array (MonoMethod *method, void *obj, MonoArray *params,
+			   MonoObject **exc)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>method:</i></dt><dd> method to invoke</dd><dt><i>obJ:</i></dt><dd> object instance</dd><dt><i>params:</i></dt><dd> arguments to the method</dd><dt><i>exc:</i></dt><dd> exception information.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Invokes the method represented by <i>method</i> on the object <i>obj</i>.
+	
+	 obj is the 'this' pointer, it should be NULL for static
+	 methods, a MonoObject* for object instances and a pointer to
+	 the value type for value types.
+	
+	 The params array contains the arguments to the method with the
+	 same convention: MonoObject* pointers for object instances and
+	 pointers to the value type otherwise. The _invoke_array
+	 variant takes a C# object[] as the params argument (MonoArray
+	 *params): in this case the value types are boxed inside the
+	 respective reference representation.
+	
+<p />
+	 From unmanaged code you'll usually use the
+	 mono_runtime_invoke() variant.
+	
+	 Note that this function doesn't handle virtual methods for
+	 you, it will exec the exact method you pass: we still need to
+	 expose a function to lookup the derived class implementation
+	 of a virtual method (there are examples of this in the code,
+	 though).
+	
+<p />
+	 You can pass NULL as the exc argument if you don't want to
+	 catch exceptions, otherwise, *exc will be set to the exception
+	 thrown, if any.  if an exception is thrown, you can't use the
+	 MonoObject* result from the function.
+	
+<p />
+	 If the method returns a value type, it is boxed in an object
+	 reference.
+
+</div> <a name="api:mono_remoting_invoke"></a>
+ <div class="api">
+    <div class="api-entry">mono_remoting_invoke</div>
+
+    <div class="prototype">MonoObject*
+mono_remoting_invoke (MonoObject *real_proxy, MonoMethodMessage *msg, 
+		      MonoObject **exc, MonoArray **out_args)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>real_proxy:</i></dt><dd> pointer to a RealProxy object</dd><dt><i>msg:</i></dt><dd> The MonoMethodMessage to execute</dd><dt><i>exc:</i></dt><dd> used to store exceptions</dd><dt><i>out_args:</i></dt><dd> used to store output arguments</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the result object.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 This is used to call RealProxy::Invoke(). RealProxy::Invoke() returns an
+	 IMessage interface and it is not trivial to extract results from there. So
+	 we call an helper method PrivateInvoke instead of calling
+	 RealProxy::Invoke() directly.
+	
+
+</div> <a name="api:mono_runtime_delegate_invoke"></a>
+ <div class="api">
+    <div class="api-entry">mono_runtime_delegate_invoke</div>
+
+    <div class="prototype">MonoObject*
+mono_runtime_delegate_invoke (MonoObject *delegate, void **params, MonoObject **exc)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>delegate:</i></dt><dd> pointer to a delegate object.</dd><dt><i>params:</i></dt><dd> parameters for the delegate.</dd><dt><i>exc:</i></dt><dd> Pointer to the exception result.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Invokes the delegate method <i>delegate</i> with the parameters provided.
+	
+	 You can pass NULL as the exc argument if you don't want to
+	 catch exceptions, otherwise, *exc will be set to the exception
+	 thrown, if any.  if an exception is thrown, you can't use the
+	 MonoObject* result from the function.
+
+
+</div> <a name="api:mono_method_call_message_new"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_call_message_new</div>
+
+    <div class="prototype">MonoMethodMessage*
+mono_method_call_message_new (MonoMethod *method, gpointer *params, MonoMethod *invoke, 
+			      MonoDelegate **cb, MonoObject **state)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>method:</i></dt><dd> method to encapsulate</dd><dt><i>params:</i></dt><dd> parameters to the method</dd><dt><i>invoke:</i></dt><dd> optional, delegate invoke.</dd><dt><i>cb:</i></dt><dd> async callback delegate.</dd><dt><i>state:</i></dt><dd> state passed to the async callback.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Translates arguments pointers into a MonoMethodMessage.
+
+</div> <a name="api:mono_method_desc_free"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_desc_free</div>
+
+    <div class="prototype">void
+mono_method_desc_free (MonoMethodDesc *desc)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>desc:</i></dt><dd> method description to be released</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Releases the MonoMethodDesc object <i>desc</i>.
+
+</div> <a name="api:mono_method_desc_from_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_desc_from_method</div>
+
+    <div class="prototype">Prototype: mono_method_desc_from_method</div>
+<p />
+
+</div> <a name="api:mono_method_desc_full_match"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_desc_full_match</div>
+
+    <div class="prototype">Prototype: mono_method_desc_full_match</div>
+<p />
+
+</div> <a name="api:mono_method_desc_match"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_desc_match</div>
+
+    <div class="prototype">Prototype: mono_method_desc_match</div>
+<p />
+
+</div> <a name="api:mono_method_desc_new"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_desc_new</div>
+
+    <div class="prototype">MonoMethodDesc*
+mono_method_desc_new (const char *name, gboolean include_namespace)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>name:</i></dt><dd> the method name.</dd><dt><i>include_namespace:</i></dt><dd> whether the name includes a namespace or not.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a parsed representation of the method description.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Creates a method description for <i>name</i>, which conforms to the following
+	 specification:
+	
+	 [namespace.]classname:methodname[(args...)]
+	
+	 in all the loaded assemblies.
+	
+
+</div> <a name="api:mono_method_desc_search_in_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_desc_search_in_class</div>
+
+    <div class="prototype">Prototype: mono_method_desc_search_in_class</div>
+<p />
+
+</div> <a name="api:mono_method_desc_search_in_image"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_desc_search_in_image</div>
+
+    <div class="prototype">Prototype: mono_method_desc_search_in_image</div>
+<p />
+
+</div> <a name="api:mono_method_full_name"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_full_name</div>
+
+    <div class="prototype">Prototype: mono_method_full_name</div>
+<p />
+
+</div> <a name="api:mono_method_get_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_get_class</div>
+
+    <div class="prototype">Prototype: mono_method_get_class</div>
+<p />
+
+</div> <a name="api:mono_method_get_flags"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_get_flags</div>
+
+    <div class="prototype">Prototype: mono_method_get_flags</div>
+<p />
+
+</div> <a name="api:mono_method_get_last_managed"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_get_last_managed</div>
+
+    <div class="prototype">Prototype: mono_method_get_last_managed</div>
+<p />
+
+</div> <a name="api:mono_method_get_marshal_info"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_get_marshal_info</div>
+
+    <div class="prototype">Prototype: mono_method_get_marshal_info</div>
+<p />
+
+</div> <a name="api:mono_method_get_name"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_get_name</div>
+
+    <div class="prototype">Prototype: mono_method_get_name</div>
+<p />
+
+</div> <a name="api:mono_method_get_object"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_get_object</div>
+
+    <div class="prototype">Prototype: mono_method_get_object</div>
+<p />
+
+</div> <a name="api:mono_method_get_param_names"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_get_param_names</div>
+
+    <div class="prototype">Prototype: mono_method_get_param_names</div>
+<p />
+
+</div> <a name="api:mono_method_get_param_token"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_get_param_token</div>
+
+    <div class="prototype">Prototype: mono_method_get_param_token</div>
+<p />
+
+</div> <a name="api:mono_method_get_signature"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_get_signature</div>
+
+    <div class="prototype">Prototype: mono_method_get_signature</div>
+<p />
+
+</div> <a name="api:mono_method_get_index"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_get_index</div>
+
+    <div class="prototype">Prototype: mono_method_get_index</div>
+<p />
+
+</div> <a name="api:mono_method_get_signature_full"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_get_signature_full</div>
+
+    <div class="prototype">Prototype: mono_method_get_signature_full</div>
+<p />
+
+</div> <a name="api:mono_method_get_token"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_get_token</div>
+
+    <div class="prototype">Prototype: mono_method_get_token</div>
+<p />
+
+</div> <a name="api:mono_method_get_wrapper_data"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_get_wrapper_data</div>
+
+    <div class="prototype">Prototype: mono_method_get_wrapper_data</div>
+<p />
+
+</div> <a name="api:mono_method_has_marshal_info"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_has_marshal_info</div>
+
+    <div class="prototype">Prototype: mono_method_has_marshal_info</div>
+<p />
+
+</div> <a name="api:mono_method_return_message_restore"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_return_message_restore</div>
+
+    <div class="prototype">void
+mono_method_return_message_restore (MonoMethod *method, gpointer *params, MonoArray *out_args)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+	 Restore results from message based processing back to arguments pointers
+
+</div> <a name="api:mono_method_same_domain"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_same_domain</div>
+
+    <div class="prototype">Prototype: mono_method_same_domain</div>
+<p />
+
+</div> <a name="api:mono_method_verify"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_verify</div>
+
+    <div class="prototype">Prototype: mono_method_verify</div>
+<p />
+
+
+</div><h3>Method Signatures</h3>
+
+ <a name="api:mono_method_signature"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_signature</div>
+
+    <div class="prototype">MonoMethodSignature*
+mono_method_signature (MonoMethod *m)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+	 Return the signature of the method M. On failure, returns NULL.
+
+</div> <a name="api:mono_signature_explicit_this"></a>
+ <div class="api">
+    <div class="api-entry">mono_signature_explicit_this</div>
+
+    <div class="prototype">Prototype: mono_signature_explicit_this</div>
+<p />
+
+</div> <a name="api:mono_signature_get_call_conv"></a>
+ <div class="api">
+    <div class="api-entry">mono_signature_get_call_conv</div>
+
+    <div class="prototype">Prototype: mono_signature_get_call_conv</div>
+<p />
+
+</div> <a name="api:mono_signature_get_desc"></a>
+ <div class="api">
+    <div class="api-entry">mono_signature_get_desc</div>
+
+    <div class="prototype">Prototype: mono_signature_get_desc</div>
+<p />
+
+</div> <a name="api:mono_signature_get_param_count"></a>
+ <div class="api">
+    <div class="api-entry">mono_signature_get_param_count</div>
+
+    <div class="prototype">Prototype: mono_signature_get_param_count</div>
+<p />
+
+</div> <a name="api:mono_signature_get_params"></a>
+ <div class="api">
+    <div class="api-entry">mono_signature_get_params</div>
+
+    <div class="prototype">Prototype: mono_signature_get_params</div>
+<p />
+
+</div> <a name="api:mono_signature_get_return_type"></a>
+ <div class="api">
+    <div class="api-entry">mono_signature_get_return_type</div>
+
+    <div class="prototype">Prototype: mono_signature_get_return_type</div>
+<p />
+
+</div> <a name="api:mono_signature_hash"></a>
+ <div class="api">
+    <div class="api-entry">mono_signature_hash</div>
+
+    <div class="prototype">Prototype: mono_signature_hash</div>
+<p />
+
+</div> <a name="api:mono_signature_is_instance"></a>
+ <div class="api">
+    <div class="api-entry">mono_signature_is_instance</div>
+
+    <div class="prototype">Prototype: mono_signature_is_instance</div>
+<p />
+
+</div> <a name="api:mono_signature_vararg_start"></a>
+ <div class="api">
+    <div class="api-entry">mono_signature_vararg_start</div>
+
+    <div class="prototype">Prototype: mono_signature_vararg_start</div>
+<p />
+
+
+</div><h3>Methods Header Operations</h3>
+
+ <a name="api:mono_method_get_header"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_get_header</div>
+
+    <div class="prototype">Prototype: mono_method_get_header</div>
+<p />
+
+</div> <a name="api:mono_method_header_get_clauses"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_header_get_clauses</div>
+
+    <div class="prototype">Prototype: mono_method_header_get_clauses</div>
+<p />
+
+</div> <a name="api:mono_method_header_get_code"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_header_get_code</div>
+
+    <div class="prototype">Prototype: mono_method_header_get_code</div>
+<p />
+
+</div> <a name="api:mono_method_header_get_locals"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_header_get_locals</div>
+
+    <div class="prototype">Prototype: mono_method_header_get_locals</div>
+<p />
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-object.html b/docs/deploy/mono-api-object.html
new file mode 100644
index 0000000..8ead35d
--- /dev/null
+++ b/docs/deploy/mono-api-object.html
@@ -0,0 +1,1245 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-object.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h1>Object API</h1>
+
+	<p />The object API deals with all the operations shared by
+	<a href="#objects">objects</a>, <a href="#valuetypes">value
+	types</a>, <a href="#arrays">arrays</a> and <a href="#nullable">nullable types</a>.
+
+	<p />The object API has methods for accessing <a href="#fields">fields</a>, <a href="#properties">properties</a>, <a href="#events">events</a>, <a href="#delegates">delegates</a>.
+
+	<p />There are some advanced uses that are useful to document
+	here dealing with <a href="#async">AsyncResults</a> and <a href="#remote">remote fields</a>.
+	
+<h2>Synopsis</h2>
+
+<div class="header">
+#include <metadata/object.h>
+
+typedef struct MonoVTable MonoVTable;
+typedef struct _MonoThreadsSync MonoThreadsSync;
+
+typedef struct {
+	MonoVTable *vtable;
+	MonoThreadsSync *synchronisation;
+} MonoObject;
+
+typedef struct {
+	guint32 length;
+	guint32 lower_bound;
+} MonoArrayBounds;
+
+typedef struct {
+	MonoObject obj;
+	/* bounds is NULL for szarrays */
+	MonoArrayBounds *bounds;
+	/* total number of elements of the array */
+	guint32 max_length; 
+	/* we use double to ensure proper alignment on platforms that need it */
+	double vector [MONO_ZERO_LEN_ARRAY];
+} MonoArray;
+
+MonoObject*      <a href="#api:mono_object_new">mono_object_new</a>                (MonoDomain *domain, 
+                                                 MonoClass *klass);
+                 <a href="#api:mono_object_new_alloc_specific"></a>                               
+                 <a href="#api:mono_object_new_fast"></a>                               
+MonoObject*      <a href="#api:mono_object_new_from_token">mono_object_new_from_token</a>      (MonoDomain *domain, 
+                                                 MonoImage *image, 
+                                                 guint32 token);
+MonoObject*      <a href="#api:mono_object_new_specific">mono_object_new_specific</a>       (MonoVTable *vtable);
+MonoObject*      <a href="#api:mono_object_clone">mono_object_clone</a>              (MonoObject *obj);
+MonoClass*       <a href="#api:mono_object_get_class">mono_object_get_class</a>          (MonoObject *obj);
+MonoDomain*      <a href="#api:mono_object_get_domain">mono_object_get_domain</a>         (MonoObject *obj);
+MonoMethod*      <a href="#api:mono_object_get_virtual_method">mono_object_get_virtual_method</a> (MonoObject *obj, 
+                                                 MonoMethod *method);
+                 <a href="#api:mono_object_isinst_mbyref"></a>                               
+MonoObject*      <a href="#api:mono_object_isinst">mono_object_isinst</a>             (MonoObject *obj, 
+                                                 MonoClass *klass);
+void             <a href="#api:mono_object_register_finalizer">mono_object_register_finalizer</a> (MonoObject *obj);
+gpointer         <a href="#api:mono_object_unbox">mono_object_unbox</a>              (MonoObject *obj);
+MonoObject*      <a href="#api:mono_object_castclass_mbyref">mono_object_castclass_mbyref</a>   (MonoObject *obj, 
+                                                 MonoClass *klass);
+                 <a href="#api:mono_object_is_alive"></a>                               
+guint            <a href="#api:mono_object_get_size">mono_object_get_size</a>           (MonoObject* o);
+MonoObject*      <a href="#api:mono_value_box">mono_value_box</a>                 (MonoDomain *domain, 
+                                                 MonoClass *class, 
+                                                 gpointer value);
+                 <a href="#api:mono_value_copy"></a>                               
+                 <a href="#api:mono_value_copy_array"></a>                               
+MonoArray*       <a href="#api:mono_array_new">mono_array_new</a>                 (MonoDomain *domain, 
+                                                 MonoClass *eclass, 
+                                                 mono_array_size_t n);
+MonoArray*       <a href="#api:mono_array_new_full">mono_array_new_full</a>            (MonoDomain *domain, 
+                                                 MonoClass *array_class, 
+                                                 mono_array_size_t *lengths, 
+                                                 mono_array_size_t *lower_bounds);
+MonoArray*       <a href="#api:mono_array_new_specific">mono_array_new_specific</a>        (MonoVTable *vtable, 
+                                                 mono_array_size_t n);
+MonoClass*       <a href="#api:mono_array_class_get">mono_array_class_get</a>           (MonoClass *eclass, 
+                                                 guint32 rank);
+MonoArray*       <a href="#api:mono_array_clone_in_domain">mono_array_clone_in_domain</a>     (MonoDomain *domain, 
+                                                 MonoArray *array);
+MonoArray*       <a href="#api:mono_array_clone">mono_array_clone</a>               (MonoArray *array);
+void             <a href="#api:mono_array_full_copy">mono_array_full_copy</a>           (MonoArray *src, 
+                                                 MonoArray *dest);
+                 <a href="#api:mono_array_to_lparray"></a>                               
+                 <a href="#api:mono_array_to_savearray"></a>                               
+                 <a href="#api:mono_dup_array_type"></a>                               
+                 <a href="#api:mono_array_set"></a>                               
+                 <a href="#api:mono_array_setref"></a>                               
+                 <a href="#api:mono_array_length"></a>                               
+                 <a href="#api:mono_array_addr"></a>                               
+                 <a href="#api:mono_array_addr_with_size"></a>                               
+                 <a href="#api:mono_array_get"></a>                               
+gint32           <a href="#api:mono_array_element_size">mono_array_element_size</a>        (MonoClass *ac);
+                 <a href="#api:mono_field_from_token"></a>                               
+                 <a href="#api:mono_field_get_flags"></a>                               
+const char*      <a href="#api:mono_field_get_name">mono_field_get_name</a>            (MonoClassField *field);
+                 <a href="#api:mono_field_get_parent"></a>                               
+MonoClass*       <a href="#api:mono_field_get_type">mono_field_get_parent</a>          (MonoClassField *field);
+void             <a href="#api:mono_field_get_value">mono_field_get_value</a>           (MonoObject *obj, 
+                                                 MonoClassField *field, 
+                                                 void *value);
+MonoObject*      <a href="#api:mono_field_get_value_object">mono_field_get_value_object</a>    (MonoDomain *domain, 
+                                                 MonoClassField *field, 
+                                                 MonoObject *obj);
+void             <a href="#api:mono_field_set_value">mono_field_set_value</a>           (MonoObject *obj, 
+                                                 MonoClassField *field, 
+                                                 void *value);
+void             <a href="#api:mono_field_static_get_value">mono_field_static_get_value</a>    (MonoVTable *vt, 
+                                                 MonoClassField *field, 
+                                                 void *value);
+void             <a href="#api:mono_field_static_set_value">mono_field_static_set_value</a>    (MonoVTable *vt, 
+                                                 MonoClassField *field, 
+                                                 void *value);
+guint32          <a href="#api:mono_property_get_flags">mono_property_get_flags</a>        (MonoProperty *prop);
+MonoMethod*      <a href="#api:mono_property_get_get_method">mono_property_get_get_method</a>   (MonoProperty *prop);
+                 <a href="#api:mono_property_get_name"></a>                               
+MonoClass*       <a href="#api:mono_property_get_parent">mono_property_get_parent</a>       (MonoProperty *prop);
+MonoMethod*      <a href="#api:mono_property_get_set_method">mono_property_get_set_method</a>   (MonoProperty *prop);
+MonoObject*      <a href="#api:mono_property_get_value">mono_property_get_value</a>        (MonoProperty *prop, 
+                                                 void *obj, 
+                                                 void **params, 
+                                                 MonoObject **exc);
+void             <a href="#api:mono_property_set_value">mono_property_set_value</a>        (MonoProperty *prop, 
+                                                 void *obj, 
+                                                 void **params, 
+                                                 MonoObject **exc);
+MonoMethod*      <a href="#api:mono_event_get_add_method">mono_event_get_add_method</a>      (MonoEvent *event);
+guint32          <a href="#api:mono_event_get_flags">mono_event_get_flags</a>           (MonoEvent *event);
+const char*      <a href="#api:mono_event_get_name">mono_event_get_name</a>            (MonoEvent *event);
+MonoClass*       <a href="#api:mono_event_get_parent">mono_event_get_parent</a>          (MonoEvent *event);
+MonoMethod*      <a href="#api:mono_event_get_raise_method">mono_event_get_raise_method</a>    (MonoEvent *event);
+MonoMethod*      <a href="#api:mono_event_get_remove_method">mono_event_get_remove_method</a>   (MonoEvent *event);
+void             <a href="#api:mono_delegate_ctor">mono_delegate_ctor</a>             (MonoObject *this, 
+                                                 MonoObject *target, 
+                                                 gpointer addr);
+MonoAsyncResult* <a href="#api:mono_async_result_new">mono_async_result_new</a>          (MonoDomain *domain, 
+                                                 HANDLE handle, 
+                                                 MonoObject *state, 
+                                                 gpointer data, 
+                                                 MonoObject *object_data);
+gpointer         <a href="#api:mono_load_remote_field">mono_load_remote_field</a>         (MonoObject *this, 
+                                                 MonoClass *klass, 
+                                                 MonoClassField *field, 
+                                                 gpointer *res);
+MonoObject*      <a href="#api:mono_load_remote_field_new">mono_load_remote_field_new</a>     (MonoObject *this, 
+                                                 MonoClass *klass, 
+                                                 MonoClassField *field);
+void             <a href="#api:mono_store_remote_field">mono_store_remote_field</a>        (MonoObject *this, 
+                                                 MonoClass *klass, 
+                                                 MonoClassField *field, 
+                                                 gpointer val);
+void             <a href="#api:mono_store_remote_field_new">mono_store_remote_field_new</a>    (MonoObject *this, 
+                                                 MonoClass *klass, 
+                                                 MonoClassField *field, 
+                                                 MonoObject *arg);
+MonoObject*      <a href="#api:mono_nullable_box">mono_nullable_box</a>              (guint8 *buf, 
+                                                 MonoClass *klass);
+                 <a href="#api:mono_nullable_init"></a>                               
+
+</div>
+
+	<p />MonoObject is the base definition for all managed objects
+	in the Mono runtime, it represents the <a href="http://www.mono-project.com/monodoc/T:System.Object">System.Object</a>
+	managed type.
+
+	<p />All objects that derive from <a href="http://www.mono-project.com/monodoc/T:System.Object">System.Object</a>
+	do have this base definition.  Derived objects are declared
+	following the pattern where the parent class is the first
+	field of a structure definition, for example:
+
+	<div class="code">
+	typedef struct {
+		MonoObject parent;
+		int my_new_field;
+	} MyNewObject
+	</div>
+
+<a name="objects"></a>
+<h2>Core Object Methods</h2>
+
+ <a name="api:mono_object_new"></a>
+ <div class="api">
+    <div class="api-entry">mono_object_new</div>
+
+    <div class="prototype">MonoObject*
+mono_object_new (MonoDomain *domain, MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> the class of the object that we want to create</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a newly created object whose definition is
+
+	 looked up using <i>klass</i>.   This will not invoke any constructors, 
+	 so the consumer of this routine has to invoke any constructors on
+	 its own to initialize the object.</blockquote>
+
+
+	<p />For example, if you wanted to create an object of type
+	System.Version, you would use a piece of code like this:
+
+	<div class="code">
+MonoClass *version_class;
+MonoObject *result;
+
+/* Get the class from mscorlib */
+version_class = mono_class_from_name (mono_get_corlib (),
+	"System", "Version");
+
+/* Create an object of that class */
+result = mono_object_new (mono_domain_get (), version_class);
+	</div>
+
+</div> <a name="api:mono_object_new_alloc_specific"></a>
+ <div class="api">
+    <div class="api-entry">mono_object_new_alloc_specific</div>
+
+    <div class="prototype">Prototype: mono_object_new_alloc_specific</div>
+<p />
+
+</div> <a name="api:mono_object_new_fast"></a>
+ <div class="api">
+    <div class="api-entry">mono_object_new_fast</div>
+
+    <div class="prototype">Prototype: mono_object_new_fast</div>
+<p />
+
+</div> <a name="api:mono_object_new_from_token"></a>
+ <div class="api">
+    <div class="api-entry">mono_object_new_from_token</div>
+
+    <div class="prototype">MonoObject*
+mono_object_new_from_token  (MonoDomain *domain, MonoImage *image, guint32 token)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>image:</i></dt><dd> Context where the type_token is hosted</dd><dt><i>token:</i></dt><dd> a token of the type that we want to create</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  A newly created object whose definition is
+
+	 looked up using <i>token</i> in the <i>image</i> image</blockquote>
+
+</div> <a name="api:mono_object_new_specific"></a>
+ <div class="api">
+    <div class="api-entry">mono_object_new_specific</div>
+
+    <div class="prototype">MonoObject*
+mono_object_new_specific (MonoVTable *vtable)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>vtable:</i></dt><dd> the vtable of the object that we want to create</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  A newly created object with class and domain specified
+
+	 by <i>vtable</i></blockquote>
+
+</div> <a name="api:mono_object_clone"></a>
+ <div class="api">
+    <div class="api-entry">mono_object_clone</div>
+
+    <div class="prototype">MonoObject*
+mono_object_clone (MonoObject *obj)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>obj:</i></dt><dd> the object to clone</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  A newly created object who is a shallow copy of <i>obj</i>
+</blockquote>
+
+</div> <a name="api:mono_object_get_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_object_get_class</div>
+
+    <div class="prototype">MonoClass*
+mono_object_get_class (MonoObject *obj)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>obj:</i></dt><dd> object to query</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the MonOClass of the object.
+</blockquote>
+<b>Remarks</b>
+<p />	 <p />
+
+
+</div> <a name="api:mono_object_get_domain"></a>
+ <div class="api">
+    <div class="api-entry">mono_object_get_domain</div>
+
+    <div class="prototype">MonoDomain*
+mono_object_get_domain (MonoObject *obj)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>obj:</i></dt><dd> object to query</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the MonoDomain where the object is hosted
+</blockquote>
+<b>Remarks</b>
+<p />	 <p />
+
+
+</div> <a name="api:mono_object_get_virtual_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_object_get_virtual_method</div>
+
+    <div class="prototype">MonoMethod*
+mono_object_get_virtual_method (MonoObject *obj, MonoMethod *method)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>obj:</i></dt><dd> object to operate on.</dd><dt><i>method:</i></dt><dd> method </dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Retrieves the MonoMethod that would be called on obj if obj is passed as
+	 the instance of a callvirt of method.
+
+</div> <a name="api:mono_object_isinst_mbyref"></a>
+ <div class="api">
+    <div class="api-entry">mono_object_isinst_mbyref</div>
+
+    <div class="prototype">Prototype: mono_object_isinst_mbyref</div>
+<p />
+
+</div> <a name="api:mono_object_isinst"></a>
+ <div class="api">
+    <div class="api-entry">mono_object_isinst</div>
+
+    <div class="prototype">MonoObject*
+mono_object_isinst (MonoObject *obj, MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>obj:</i></dt><dd> an object</dd><dt><i>klass:</i></dt><dd> a pointer to a class </dd></blockquote>
+<b>Returns</b>
+<blockquote>	  <i>obj</i> if <i>obj</i> is derived from <i>klass</i>
+</blockquote>
+
+</div> <a name="api:mono_object_register_finalizer"></a>
+ <div class="api">
+    <div class="api-entry">mono_object_register_finalizer</div>
+
+    <div class="prototype">void
+mono_object_register_finalizer (MonoObject *obj)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>obj:</i></dt><dd> object to register</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Records that object <i>obj</i> has a finalizer, this will call the
+	 Finalize method when the garbage collector disposes the object.
+	
+<p />
+
+</div> <a name="api:mono_object_unbox"></a>
+ <div class="api">
+    <div class="api-entry">mono_object_unbox</div>
+
+    <div class="prototype">gpointer
+mono_object_unbox (MonoObject *obj)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>obj:</i></dt><dd> object to unbox</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a pointer to the start of the valuetype boxed in this
+
+	 object.
+	
+	 This method will assert if the object passed is not a valuetype.</blockquote>
+<b>Remarks</b>
+<p />	 <p />
+
+
+</div> <a name="api:mono_object_castclass_mbyref"></a>
+ <div class="api">
+    <div class="api-entry">mono_object_castclass_mbyref</div>
+
+    <div class="prototype">MonoObject*
+mono_object_castclass_mbyref (MonoObject *obj, MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>obj:</i></dt><dd> an object</dd><dt><i>klass:</i></dt><dd> a pointer to a class </dd></blockquote>
+<b>Returns</b>
+<blockquote>	  <i>obj</i> if <i>obj</i> is derived from <i>klass</i>, throws an exception otherwise
+</blockquote>
+
+</div> <a name="api:mono_object_is_alive"></a>
+ <div class="api">
+    <div class="api-entry">mono_object_is_alive</div>
+
+    <div class="prototype">Prototype: mono_object_is_alive</div>
+<p />
+
+</div> <a name="api:mono_object_get_size"></a>
+ <div class="api">
+    <div class="api-entry">mono_object_get_size</div>
+
+    <div class="prototype">guint
+mono_object_get_size (MonoObject* o)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>o:</i></dt><dd> object to query</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the size, in bytes, of <i>o</i>
+</blockquote>
+<b>Remarks</b>
+<p />	 <p />
+
+
+
+<a name="valuetypes"></a>
+</div><h2>Value Types</h2>
+
+ <a name="api:mono_value_box"></a>
+ <div class="api">
+    <div class="api-entry">mono_value_box</div>
+
+    <div class="prototype">MonoObject*
+mono_value_box (MonoDomain *domain, MonoClass *class, gpointer value)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>class:</i></dt><dd> the class of the value</dd><dt><i>value:</i></dt><dd> a pointer to the unboxed data</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  A newly created object which contains <i>value</i>.
+</blockquote>
+
+</div> <a name="api:mono_value_copy"></a>
+ <div class="api">
+    <div class="api-entry">mono_value_copy</div>
+
+    <div class="prototype">Prototype: mono_value_copy</div>
+<p />
+
+</div> <a name="api:mono_value_copy_array"></a>
+ <div class="api">
+    <div class="api-entry">mono_value_copy_array</div>
+
+    <div class="prototype">Prototype: mono_value_copy_array</div>
+<p />
+
+
+<a name="arrays"></a>
+</div><h2>Array Methods</h2>
+
+	<p />Use the <tt>mono_array_new_*</tt> methods to create arrays
+	of a given type.
+
+	<p />For example, the following code creates an array with two
+	elements of type <tt>System.Byte</tt>, and sets the values
+	0xca and 0xfe on it:
+	
+	<pre class="code">
+
+	MonoArray *CreateByteArray (MonoDomain *domain)
+	{
+	    MonoArray *data;
+
+	    data = mono_array_new (domain, mono_get_byte_class (), 2);
+	    mono_array_set (data, guint8, 0, 0xca);
+	    mono_array_set (data, guint8, 0, 0xfe);
+
+	    return data;
+	}
+
+	</pre>
+
+<h3>Creating Arrays</h3>
+
+ <a name="api:mono_array_new"></a>
+ <div class="api">
+    <div class="api-entry">mono_array_new</div>
+
+    <div class="prototype">MonoArray*
+mono_array_new (MonoDomain *domain, MonoClass *eclass, mono_array_size_t n)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>domain:</i></dt><dd> domain where the object is created</dd><dt><i>eclass:</i></dt><dd> element class</dd><dt><i>n:</i></dt><dd> number of array elements</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This routine creates a new szarray with <i>n</i> elements of type <i>eclass</i>.
+
+</div> <a name="api:mono_array_new_full"></a>
+ <div class="api">
+    <div class="api-entry">mono_array_new_full</div>
+
+    <div class="prototype">MonoArray*
+mono_array_new_full (MonoDomain *domain, MonoClass *array_class, mono_array_size_t *lengths, mono_array_size_t *lower_bounds)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>domain:</i></dt><dd> domain where the object is created</dd><dt><i>array_class:</i></dt><dd> array class</dd><dt><i>lengths:</i></dt><dd> lengths for each dimension in the array</dd><dt><i>lower_bounds:</i></dt><dd> lower bounds for each dimension in the array (may be NULL)</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This routine creates a new array objects with the given dimensions,
+	 lower bounds and type.
+
+</div> <a name="api:mono_array_new_specific"></a>
+ <div class="api">
+    <div class="api-entry">mono_array_new_specific</div>
+
+    <div class="prototype">MonoArray*
+mono_array_new_specific (MonoVTable *vtable, mono_array_size_t n)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>vtable:</i></dt><dd> a vtable in the appropriate domain for an initialized class</dd><dt><i>n:</i></dt><dd> number of array elements</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This routine is a fast alternative to mono_array_new() for code which
+	 can be sure about the domain it operates in.
+
+</div> <a name="api:mono_array_class_get"></a>
+ <div class="api">
+    <div class="api-entry">mono_array_class_get</div>
+
+    <div class="prototype">MonoClass*
+mono_array_class_get (MonoClass *eclass, guint32 rank)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>element_class:</i></dt><dd> element class </dd><dt><i>rank:</i></dt><dd> the dimension of the array class</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a class object describing the array with element type <i>element_type</i> and 
+
+	 dimension <i>rank</i>. </blockquote>
+
+</div> <a name="api:mono_array_clone_in_domain"></a>
+ <div class="api">
+    <div class="api-entry">mono_array_clone_in_domain</div>
+
+    <div class="prototype">MonoArray*
+mono_array_clone_in_domain (MonoDomain *domain, MonoArray *array)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>domain:</i></dt><dd> the domain in which the array will be cloned into</dd><dt><i>array:</i></dt><dd> the array to clone</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This routine returns a copy of the array that is hosted on the
+	 specified MonoDomain.
+
+</div> <a name="api:mono_array_clone"></a>
+ <div class="api">
+    <div class="api-entry">mono_array_clone</div>
+
+    <div class="prototype">MonoArray*
+mono_array_clone (MonoArray *array)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>array:</i></dt><dd> the array to clone</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  A newly created array who is a shallow copy of <i>array</i>
+</blockquote>
+
+</div> <a name="api:mono_array_full_copy"></a>
+ <div class="api">
+    <div class="api-entry">mono_array_full_copy</div>
+
+    <div class="prototype">void
+mono_array_full_copy (MonoArray *src, MonoArray *dest)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>src:</i></dt><dd> source array to copy</dd><dt><i>dest:</i></dt><dd> destination array</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Copies the content of one array to another with exactly the same type and size.
+
+</div> <a name="api:mono_array_to_lparray"></a>
+ <div class="api">
+    <div class="api-entry">mono_array_to_lparray</div>
+
+    <div class="prototype">Prototype: mono_array_to_lparray</div>
+<p />
+
+</div> <a name="api:mono_array_to_savearray"></a>
+ <div class="api">
+    <div class="api-entry">mono_array_to_savearray</div>
+
+    <div class="prototype">Prototype: mono_array_to_savearray</div>
+<p />
+
+</div> <a name="api:mono_dup_array_type"></a>
+ <div class="api">
+    <div class="api-entry">mono_dup_array_type</div>
+
+    <div class="prototype">Prototype: mono_dup_array_type</div>
+<p />
+
+
+</div><h3>Using Arrays</h3>
+
+ <a name="api:mono_array_set"></a>
+ <div class="api">
+    <div class="api-entry">mono_array_set</div>
+
+    <div class="prototype">Prototype: mono_array_set</div>
+<p />
+
+</div> <a name="api:mono_array_setref"></a>
+ <div class="api">
+    <div class="api-entry">mono_array_setref</div>
+
+    <div class="prototype">Prototype: mono_array_setref</div>
+<p />
+
+</div> <a name="api:mono_array_length"></a>
+ <div class="api">
+    <div class="api-entry">mono_array_length</div>
+
+    <div class="prototype">Prototype: mono_array_length</div>
+<p />
+
+</div> <a name="api:mono_array_addr"></a>
+ <div class="api">
+    <div class="api-entry">mono_array_addr</div>
+
+    <div class="prototype">Prototype: mono_array_addr</div>
+<p />
+
+</div> <a name="api:mono_array_addr_with_size"></a>
+ <div class="api">
+    <div class="api-entry">mono_array_addr_with_size</div>
+
+    <div class="prototype">Prototype: mono_array_addr_with_size</div>
+<p />
+
+</div> <a name="api:mono_array_get"></a>
+ <div class="api">
+    <div class="api-entry">mono_array_get</div>
+
+    <div class="prototype">Prototype: mono_array_get</div>
+<p />
+
+</div> <a name="api:mono_array_element_size"></a>
+ <div class="api">
+    <div class="api-entry">mono_array_element_size</div>
+
+    <div class="prototype">gint32
+mono_array_element_size (MonoClass *ac)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>ac:</i></dt><dd> pointer to a #MonoArrayClass</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the size of single array element.
+</blockquote>
+
+
+<a name="fields"></a>
+</div><h2>Fields</h2>
+
+ <a name="api:mono_field_from_token"></a>
+ <div class="api">
+    <div class="api-entry">mono_field_from_token</div>
+
+    <div class="prototype">Prototype: mono_field_from_token</div>
+<p />
+
+</div> <a name="api:mono_field_get_flags"></a>
+ <div class="api">
+    <div class="api-entry">mono_field_get_flags</div>
+
+    <div class="prototype">Prototype: mono_field_get_flags</div>
+<p />
+
+</div> <a name="api:mono_field_get_name"></a>
+ <div class="api">
+    <div class="api-entry">mono_field_get_name</div>
+
+    <div class="prototype">const char*
+mono_field_get_name (MonoClassField *field)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>field:</i></dt><dd> the MonoClassField to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the name of the field.
+</blockquote>
+
+</div> <a name="api:mono_field_get_parent"></a>
+ <div class="api">
+    <div class="api-entry">mono_field_get_parent</div>
+
+    <div class="prototype">Prototype: mono_field_get_parent</div>
+<p />
+
+</div> <a name="api:mono_field_get_type"></a>
+ <div class="api">
+    <div class="api-entry">mono_field_get_type</div>
+
+    <div class="prototype">MonoClass*
+mono_field_get_parent (MonoClassField *field)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>field:</i></dt><dd> the MonoClassField to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  MonoClass where the field was defined.
+</blockquote>
+
+</div> <a name="api:mono_field_get_value"></a>
+ <div class="api">
+    <div class="api-entry">mono_field_get_value</div>
+
+    <div class="prototype">void
+mono_field_get_value (MonoObject *obj, MonoClassField *field, void *value)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>obj:</i></dt><dd> Object instance</dd><dt><i>field:</i></dt><dd> MonoClassField describing the field to fetch information from</dd><dt><i>value:</i></dt><dd> pointer to the location where the value will be stored</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Use this routine to get the value of the field <i>field</i> in the object
+	 passed.
+	
+	 The pointer provided by value must be of the field type, for reference
+	 types this is a MonoObject*, for value types its the actual pointer to
+	 the value type.
+	
+	 For example:
+	     int i;
+	     mono_field_get_value (obj, int_field, &i);
+
+</div> <a name="api:mono_field_get_value_object"></a>
+ <div class="api">
+    <div class="api-entry">mono_field_get_value_object</div>
+
+    <div class="prototype">MonoObject*
+mono_field_get_value_object (MonoDomain *domain, MonoClassField *field, MonoObject *obj)
+	
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>domain:</i></dt><dd> domain where the object will be created (if boxing)</dd><dt><i>field:</i></dt><dd> MonoClassField describing the field to fetch information from</dd><dt><i>obj:</i></dt><dd> The object instance for the field.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a new MonoObject with the value from the given field.  If the
+
+	 field represents a value type, the value is boxed.
+	</blockquote>
+
+</div> <a name="api:mono_field_set_value"></a>
+ <div class="api">
+    <div class="api-entry">mono_field_set_value</div>
+
+    <div class="prototype">void
+mono_field_set_value (MonoObject *obj, MonoClassField *field, void *value)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>obj:</i></dt><dd> Instance object</dd><dt><i>field:</i></dt><dd> MonoClassField describing the field to set</dd><dt><i>value:</i></dt><dd> The value to be set</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Sets the value of the field described by <i>field</i> in the object instance <i>obj</i>
+	 to the value passed in <i>value</i>.   This method should only be used for instance
+	 fields.   For static fields, use mono_field_static_set_value.
+	
+	 The value must be on the native format of the field type. 
+
+</div> <a name="api:mono_field_static_get_value"></a>
+ <div class="api">
+    <div class="api-entry">mono_field_static_get_value</div>
+
+    <div class="prototype">void
+mono_field_static_get_value (MonoVTable *vt, MonoClassField *field, void *value)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>vt:</i></dt><dd> vtable to the object</dd><dt><i>field:</i></dt><dd> MonoClassField describing the field to fetch information from</dd><dt><i>value:</i></dt><dd> where the value is returned</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Use this routine to get the value of the static field <i>field</i> value.
+	
+	 The pointer provided by value must be of the field type, for reference
+	 types this is a MonoObject*, for value types its the actual pointer to
+	 the value type.
+	
+	 For example:
+	     int i;
+	     mono_field_static_get_value (vt, int_field, &i);
+
+</div> <a name="api:mono_field_static_set_value"></a>
+ <div class="api">
+    <div class="api-entry">mono_field_static_set_value</div>
+
+    <div class="prototype">void
+mono_field_static_set_value (MonoVTable *vt, MonoClassField *field, void *value)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>field:</i></dt><dd> MonoClassField describing the field to set</dd><dt><i>value:</i></dt><dd> The value to be set</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Sets the value of the static field described by <i>field</i>
+	 to the value passed in <i>value</i>.
+	
+	 The value must be on the native format of the field type. 
+
+
+<a name="properties"></a>
+</div><h2>Properties</h2>
+
+ <a name="api:mono_property_get_flags"></a>
+ <div class="api">
+    <div class="api-entry">mono_property_get_flags</div>
+
+    <div class="prototype">guint32
+mono_property_get_flags (MonoProperty *prop)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>prop:</i></dt><dd> the MonoProperty to act on.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the flags for the property.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 The metadata flags for a property are encoded using the
+	 PROPERTY_ATTRIBUTE_* constants.  See the tabledefs.h file for details.
+	
+
+</div> <a name="api:mono_property_get_get_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_property_get_get_method</div>
+
+    <div class="prototype">MonoMethod*
+mono_property_get_get_method (MonoProperty *prop)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>prop:</i></dt><dd> the MonoProperty to act on.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the setter method of the property (A MonoMethod)
+</blockquote>
+
+</div> <a name="api:mono_property_get_name"></a>
+ <div class="api">
+    <div class="api-entry">mono_property_get_name</div>
+
+    <div class="prototype">Prototype: mono_property_get_name</div>
+<p />
+
+</div> <a name="api:mono_property_get_parent"></a>
+ <div class="api">
+    <div class="api-entry">mono_property_get_parent</div>
+
+    <div class="prototype">MonoClass*
+mono_property_get_parent (MonoProperty *prop)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>prop:</i></dt><dd> the MonoProperty to act on.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the MonoClass where the property was defined.
+</blockquote>
+
+</div> <a name="api:mono_property_get_set_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_property_get_set_method</div>
+
+    <div class="prototype">MonoMethod*
+mono_property_get_set_method (MonoProperty *prop)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>prop:</i></dt><dd> the MonoProperty to act on.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the setter method of the property (A MonoMethod)
+</blockquote>
+
+</div> <a name="api:mono_property_get_value"></a>
+ <div class="api">
+    <div class="api-entry">mono_property_get_value</div>
+
+    <div class="prototype">MonoObject*
+mono_property_get_value (MonoProperty *prop, void *obj, void **params, MonoObject **exc)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>prop:</i></dt><dd> MonoProperty to fetch</dd><dt><i>obj:</i></dt><dd> instance object on which to act</dd><dt><i>params:</i></dt><dd> parameters to pass to the propery</dd><dt><i>exc:</i></dt><dd> optional exception</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the value from invoking the get method on the property.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Invokes the property's get method with the given arguments on the
+	 object instance obj (or NULL for static properties). 
+	
+<p />
+	 You can pass NULL as the exc argument if you don't want to
+	 catch exceptions, otherwise, *exc will be set to the exception
+	 thrown, if any.  if an exception is thrown, you can't use the
+	 MonoObject* result from the function.
+	
+
+</div> <a name="api:mono_property_set_value"></a>
+ <div class="api">
+    <div class="api-entry">mono_property_set_value</div>
+
+    <div class="prototype">void
+mono_property_set_value (MonoProperty *prop, void *obj, void **params, MonoObject **exc)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>prop:</i></dt><dd> MonoProperty to set</dd><dt><i>obj:</i></dt><dd> instance object on which to act</dd><dt><i>params:</i></dt><dd> parameters to pass to the propery</dd><dt><i>exc:</i></dt><dd> optional exception</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Invokes the property's set method with the given arguments on the
+	 object instance obj (or NULL for static properties). 
+	
+<p />
+	 You can pass NULL as the exc argument if you don't want to
+	 catch exceptions, otherwise, *exc will be set to the exception
+	 thrown, if any.  if an exception is thrown, you can't use the
+	 MonoObject* result from the function.
+
+
+<a name="events"></a>
+</div><h2>Events</h2>
+
+ <a name="api:mono_event_get_add_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_event_get_add_method</div>
+
+    <div class="prototype">MonoMethod*
+mono_event_get_add_method (MonoEvent *event)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>event:</i></dt><dd> The MonoEvent to act on.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the <i>add</i>' method for the event (a MonoMethod).
+</blockquote>
+
+</div> <a name="api:mono_event_get_flags"></a>
+ <div class="api">
+    <div class="api-entry">mono_event_get_flags</div>
+
+    <div class="prototype">guint32
+mono_event_get_flags (MonoEvent *event)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>event:</i></dt><dd> the MonoEvent to act on.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the flags for the event.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 The metadata flags for an event are encoded using the
+	 EVENT_* constants.  See the tabledefs.h file for details.
+	
+
+</div> <a name="api:mono_event_get_name"></a>
+ <div class="api">
+    <div class="api-entry">mono_event_get_name</div>
+
+    <div class="prototype">const char*
+mono_event_get_name (MonoEvent *event)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>event:</i></dt><dd> the MonoEvent to act on</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the name of the event.
+</blockquote>
+
+</div> <a name="api:mono_event_get_parent"></a>
+ <div class="api">
+    <div class="api-entry">mono_event_get_parent</div>
+
+    <div class="prototype">MonoClass*
+mono_event_get_parent (MonoEvent *event)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>event:</i></dt><dd> the MonoEvent to act on.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the MonoClass where the event is defined.
+</blockquote>
+
+</div> <a name="api:mono_event_get_raise_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_event_get_raise_method</div>
+
+    <div class="prototype">MonoMethod*
+mono_event_get_raise_method (MonoEvent *event)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>event:</i></dt><dd> The MonoEvent to act on.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the <i>raise</i> method for the event (a MonoMethod).
+</blockquote>
+
+</div> <a name="api:mono_event_get_remove_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_event_get_remove_method</div>
+
+    <div class="prototype">MonoMethod*
+mono_event_get_remove_method (MonoEvent *event)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>event:</i></dt><dd> The MonoEvent to act on.</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the <i>remove</i> method for the event (a MonoMethod).
+</blockquote>
+
+
+<a name="delegates"></a>
+</div><h2>Delegates</h2>
+ <a name="api:mono_delegate_ctor"></a>
+ <div class="api">
+    <div class="api-entry">mono_delegate_ctor</div>
+
+    <div class="prototype">void
+mono_delegate_ctor (MonoObject *this, MonoObject *target, gpointer addr)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>this:</i></dt><dd> pointer to an uninitialized delegate object</dd><dt><i>target:</i></dt><dd> target object</dd><dt><i>addr:</i></dt><dd> pointer to native code</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This is used to initialize a delegate.
+
+
+<a name="async"></a>
+</div><h2>AsyncResults</h2>
+ <a name="api:mono_async_result_new"></a>
+ <div class="api">
+    <div class="api-entry">mono_async_result_new</div>
+
+    <div class="prototype">MonoAsyncResult*
+mono_async_result_new (MonoDomain *domain, HANDLE handle, MonoObject *state, gpointer data, MonoObject *object_data)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>domain:</i></dt><dd>domain where the object will be created.</dd><dt><i>handle:</i></dt><dd> wait handle.</dd><dt><i>state:</i></dt><dd> state to pass to AsyncResult</dd><dt><i>data:</i></dt><dd> C closure data.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Creates a new MonoAsyncResult (AsyncResult C# class) in the given domain.
+	 If the handle is not null, the handle is initialized to a MonOWaitHandle.
+	
+
+
+<a name="remote"></a>
+</div><h2>Remote Fields</h2>
+ <a name="api:mono_load_remote_field"></a>
+ <div class="api">
+    <div class="api-entry">mono_load_remote_field</div>
+
+    <div class="prototype">gpointer
+mono_load_remote_field (MonoObject *this, MonoClass *klass, MonoClassField *field, gpointer *res)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>this:</i></dt><dd> pointer to an object</dd><dt><i>klass:</i></dt><dd> klass of the object containing <i>field</i></dd><dt><i>field:</i></dt><dd> the field to load</dd><dt><i>res:</i></dt><dd> a storage to store the result</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  an address pointing to the value of field.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 This method is called by the runtime on attempts to load fields of
+	 transparent proxy objects. <i>this</i> points to such TP, <i>klass</i> is the class of
+	 the object containing <i>field</i>. <i>res</i> is a storage location which can be
+	 used to store the result.
+	
+
+</div> <a name="api:mono_load_remote_field_new"></a>
+ <div class="api">
+    <div class="api-entry">mono_load_remote_field_new</div>
+
+    <div class="prototype">MonoObject*
+mono_load_remote_field_new (MonoObject *this, MonoClass *klass, MonoClassField *field)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>this:</i></dt><dd> </dd><dt><i>klass:</i></dt><dd> </dd><dt><i>field:</i></dt><dd></dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Missing documentation.
+
+</div> <a name="api:mono_store_remote_field"></a>
+ <div class="api">
+    <div class="api-entry">mono_store_remote_field</div>
+
+    <div class="prototype">void
+mono_store_remote_field (MonoObject *this, MonoClass *klass, MonoClassField *field, gpointer val)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>this:</i></dt><dd> pointer to an object</dd><dt><i>klass:</i></dt><dd> klass of the object containing <i>field</i></dd><dt><i>field:</i></dt><dd> the field to load</dd><dt><i>val:</i></dt><dd> the value/object to store</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This method is called by the runtime on attempts to store fields of
+	 transparent proxy objects. <i>this</i> points to such TP, <i>klass</i> is the class of
+	 the object containing <i>field</i>. <i>val</i> is the new value to store in <i>field</i>.
+
+</div> <a name="api:mono_store_remote_field_new"></a>
+ <div class="api">
+    <div class="api-entry">mono_store_remote_field_new</div>
+
+    <div class="prototype">void
+mono_store_remote_field_new (MonoObject *this, MonoClass *klass, MonoClassField *field, MonoObject *arg)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>this:</i></dt><dd></dd><dt><i>klass:</i></dt><dd></dd><dt><i>field:</i></dt><dd></dd><dt><i>arg:</i></dt><dd></dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Missing documentation
+
+
+<a name="nullable"></a>
+</div><h2>Nullable Objects</h2>
+
+	<p />These methods are used to manipulate objects of type
+	System.Nullable<T>
+	
+ <a name="api:mono_nullable_box"></a>
+ <div class="api">
+    <div class="api-entry">mono_nullable_box</div>
+
+    <div class="prototype">MonoObject*
+mono_nullable_box (guint8 *buf, MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>buf:</i></dt><dd> The buffer representing the data to be boxed</dd><dt><i>klass:</i></dt><dd> the type to box it as.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Creates a boxed vtype or NULL from the Nullable structure pointed to by
+	 <i>buf</i>.
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-profiler.html b/docs/deploy/mono-api-profiler.html
new file mode 100644
index 0000000..c0b89c9
--- /dev/null
+++ b/docs/deploy/mono-api-profiler.html
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-profiler.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h1>Profiling Interface</h1>
+
+<h3>Profiler Operation</h3>
+
+	<p />The following methods can be used by dynamic profiler
+	methods to monitor different aspects of the program.
+
+	<p />A custom profiler will have one public method defined in
+	the shared library which is the entry point that Mono calls at
+	startup, it has the following signature:
+
+	<pre>
+	void mono_profiler_startup (const char *desc)
+	</pre>
+
+	<p />Where "desc" is the set of arguments that were passed from
+	the command line.  This routine will call
+	<tt>mono_profiler_install</tt> to activate the profiler and
+	will install one or more filters (one of the various
+	<tt>mono_profiler_install_</tt> functions).
+
+	<p />In addition, a profiler developer will typically call
+	<tt>mono_profiler_set_events</tt> to register which kinds of
+	traces should be enabled, these can be an OR-ed combination of
+	the following:
+
+	<pre>
+	MONO_PROFILE_NONE
+        MONO_PROFILE_APPDOMAIN_EVENTS
+        MONO_PROFILE_ASSEMBLY_EVENTS
+        MONO_PROFILE_MODULE_EVENTS    
+        MONO_PROFILE_CLASS_EVENTS     
+        MONO_PROFILE_JIT_COMPILATION  
+        MONO_PROFILE_INLINING         
+        MONO_PROFILE_EXCEPTIONS       
+        MONO_PROFILE_ALLOCATIONS      
+        MONO_PROFILE_GC               
+        MONO_PROFILE_THREADS          
+        MONO_PROFILE_REMOTING         
+        MONO_PROFILE_TRANSITIONS      
+        MONO_PROFILE_ENTER_LEAVE      
+        MONO_PROFILE_COVERAGE         
+        MONO_PROFILE_INS_COVERAGE     
+        MONO_PROFILE_STATISTICAL      
+	</pre>
+
+	<p />Developers can change the set of monitored events at
+	runtime by calling <tt>mono_profiler_set_events</tt>.
+	
+ <a name="api:mono_profiler_install"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_install</div>
+
+    <div class="prototype">void
+mono_profiler_install (MonoProfiler *prof, MonoProfileFunc callback)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>prof:</i></dt><dd> a MonoProfiler structure pointer, or a pointer to a derived structure.</dd><dt><i>callback:</i></dt><dd> the function to invoke at shutdown</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Use mono_profiler_install to activate profiling in the Mono runtime.
+	 Typically developers of new profilers will create a new structure whose
+	 first field is a MonoProfiler and put any extra information that they need
+	 to access from the various profiling callbacks there.
+	
+
+</div> <a name="api:mono_profiler_install_allocation"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_install_allocation</div>
+
+    <div class="prototype">Prototype: mono_profiler_install_allocation</div>
+<p />
+
+</div> <a name="api:mono_profiler_install_appdomain"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_install_appdomain</div>
+
+    <div class="prototype">Prototype: mono_profiler_install_appdomain</div>
+<p />
+
+</div> <a name="api:mono_profiler_install_assembly"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_install_assembly</div>
+
+    <div class="prototype">Prototype: mono_profiler_install_assembly</div>
+<p />
+
+</div> <a name="api:mono_profiler_install_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_install_class</div>
+
+    <div class="prototype">Prototype: mono_profiler_install_class</div>
+<p />
+
+</div> <a name="api:mono_profiler_install_coverage_filter"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_install_coverage_filter</div>
+
+    <div class="prototype">Prototype: mono_profiler_install_coverage_filter</div>
+<p />
+
+</div> <a name="api:mono_profiler_install_enter_leave"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_install_enter_leave</div>
+
+    <div class="prototype">void
+mono_profiler_install_enter_leave (MonoProfileMethodFunc enter, MonoProfileMethodFunc fleave)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>enter:</i></dt><dd> the routine to be called on each method entry</dd><dt><i>fleave:</i></dt><dd> the routine to be called each time a method returns</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Use this routine to install routines that will be called everytime
+	 a method enters and leaves.   The routines will receive as an argument
+	 the MonoMethod representing the method that is entering or leaving.
+
+</div> <a name="api:mono_profiler_install_jit_compile"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_install_jit_compile</div>
+
+    <div class="prototype">void 
+mono_profiler_install_jit_compile (MonoProfileMethodFunc start, MonoProfileMethodResult end)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>start:</i></dt><dd> the routine to be called when the JIT process starts.</dd><dt><i>end:</i></dt><dd> the routine to be called when the JIT process ends.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Use this routine to install routines that will be called when JIT 
+	 compilation of a method starts and completes.
+
+</div> <a name="api:mono_profiler_install_module"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_install_module</div>
+
+    <div class="prototype">Prototype: mono_profiler_install_module</div>
+<p />
+
+</div> <a name="api:mono_profiler_install_thread"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_install_thread</div>
+
+    <div class="prototype">Prototype: mono_profiler_install_thread</div>
+<p />
+
+</div> <a name="api:mono_profiler_install_transition"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_install_transition</div>
+
+    <div class="prototype">Prototype: mono_profiler_install_transition</div>
+<p />
+
+</div> <a name="api:mono_profiler_install_gc"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_install_gc</div>
+
+    <div class="prototype">Prototype: mono_profiler_install_gc</div>
+<p />
+
+</div> <a name="api:mono_profiler_install_statistical"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_install_statistical</div>
+
+    <div class="prototype">Prototype: mono_profiler_install_statistical</div>
+<p />
+
+</div> <a name="api:mono_profiler_set_events"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_set_events</div>
+
+    <div class="prototype">void
+mono_profiler_set_events (MonoProfileFlags events)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>events:</i></dt><dd> an ORed set of values made up of MONO_PROFILER_ flags</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 The events descriped in the <i>events</i> argument is a set of flags
+	 that represent which profiling events must be triggered.  For
+	 example if you have registered a set of methods for tracking
+	 JIT compilation start and end with mono_profiler_install_jit_compile,
+	 you will want to pass the MONO_PROFILE_JIT_COMPILATION flag to
+	 this routine.
+	
+	 You can call mono_profile_set_events more than once and you can
+	 do this at runtime to modify which methods are invoked.
+
+</div> <a name="api:mono_profiler_get_events"></a>
+ <div class="api">
+    <div class="api-entry">mono_profiler_get_events</div>
+
+    <div class="prototype">MonoProfileFlags
+mono_profiler_get_events (void)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+	 Returns a list of active events that will be intercepted. 
+
+
+</div><h3>Coverage</h3>
+
+	<p />To support profiling modules that need to do code coverage
+	analysis, the following routines is provided:
+	
+</body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-reflection.html b/docs/deploy/mono-api-reflection.html
new file mode 100644
index 0000000..ccdee70
--- /dev/null
+++ b/docs/deploy/mono-api-reflection.html
@@ -0,0 +1,376 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-reflection.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+ <a name="api:mono_reflection_bind_generic_method_parameters"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_bind_generic_method_parameters</div>
+
+    <div class="prototype">Prototype: mono_reflection_bind_generic_method_parameters</div>
+<p />
+
+</div> <a name="api:mono_reflection_bind_generic_parameters"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_bind_generic_parameters</div>
+
+    <div class="prototype">Prototype: mono_reflection_bind_generic_parameters</div>
+<p />
+
+</div> <a name="api:mono_reflection_create_dynamic_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_create_dynamic_method</div>
+
+    <div class="prototype">Prototype: mono_reflection_create_dynamic_method</div>
+<p />
+
+</div> <a name="api:mono_reflection_create_generic_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_create_generic_class</div>
+
+    <div class="prototype">Prototype: mono_reflection_create_generic_class</div>
+<p />
+
+</div> <a name="api:mono_reflection_create_internal_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_create_internal_class</div>
+
+    <div class="prototype">Prototype: mono_reflection_create_internal_class</div>
+<p />
+
+</div> <a name="api:mono_reflection_create_runtime_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_create_runtime_class</div>
+
+    <div class="prototype">Prototype: mono_reflection_create_runtime_class</div>
+<p />
+
+</div> <a name="api:mono_reflection_event_builder_get_event_info"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_event_builder_get_event_info</div>
+
+    <div class="prototype">Prototype: mono_reflection_event_builder_get_event_info</div>
+<p />
+
+</div> <a name="api:mono_reflection_generic_inst_initialize"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_generic_inst_initialize</div>
+
+    <div class="prototype">Prototype: mono_reflection_generic_inst_initialize</div>
+<p />
+
+</div> <a name="api:mono_reflection_get_custom_attrs_blob"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_get_custom_attrs_blob</div>
+
+    <div class="prototype">Prototype: mono_reflection_get_custom_attrs_blob</div>
+<p />
+
+</div> <a name="api:mono_reflection_get_custom_attrs"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_get_custom_attrs</div>
+
+    <div class="prototype">Prototype: mono_reflection_get_custom_attrs</div>
+<p />
+
+</div> <a name="api:mono_custom_attrs_get_attr"></a>
+ <div class="api">
+    <div class="api-entry">mono_custom_attrs_get_attr</div>
+
+    <div class="prototype">Prototype: mono_custom_attrs_get_attr</div>
+<p />
+
+</div> <a name="api:mono_reflection_get_token"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_get_token</div>
+
+    <div class="prototype">Prototype: mono_reflection_get_token</div>
+<p />
+
+</div> <a name="api:mono_reflection_get_type"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_get_type</div>
+
+    <div class="prototype">Prototype: mono_reflection_get_type</div>
+<p />
+
+</div> <a name="api:mono_reflection_initialize_generic_parameter"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_initialize_generic_parameter</div>
+
+    <div class="prototype">Prototype: mono_reflection_initialize_generic_parameter</div>
+<p />
+
+</div> <a name="api:mono_reflection_lookup_dynamic_token"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_lookup_dynamic_token</div>
+
+    <div class="prototype">gpointer
+mono_reflection_lookup_dynamic_token (MonoImage *image, guint32 token, gboolean valid_token, MonoClass **handle_class, MonoGenericContext *context)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+	 Finish the Builder object pointed to by TOKEN and return the corresponding
+	 runtime structure. If HANDLE_CLASS is not NULL, it is set to the class required by 
+	 mono_ldtoken. If valid_token is TRUE, assert if it is not found in the token->object
+	 mapping table.
+	
+<p />
+	 LOCKING: Take the loader lock
+
+</div> <a name="api:mono_reflection_marshal_from_marshal_spec"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_marshal_from_marshal_spec</div>
+
+    <div class="prototype">Prototype: mono_reflection_marshal_from_marshal_spec</div>
+<p />
+
+</div> <a name="api:mono_reflection_parse_type"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_parse_type</div>
+
+    <div class="prototype">Prototype: mono_reflection_parse_type</div>
+<p />
+
+</div> <a name="api:mono_reflection_setup_generic_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_setup_generic_class</div>
+
+    <div class="prototype">Prototype: mono_reflection_setup_generic_class</div>
+<p />
+
+</div> <a name="api:mono_reflection_setup_internal_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_setup_internal_class</div>
+
+    <div class="prototype">Prototype: mono_reflection_setup_internal_class</div>
+<p />
+
+</div> <a name="api:mono_reflection_sighelper_get_signature_field"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_sighelper_get_signature_field</div>
+
+    <div class="prototype">Prototype: mono_reflection_sighelper_get_signature_field</div>
+<p />
+
+</div> <a name="api:mono_reflection_sighelper_get_signature_local"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_sighelper_get_signature_local</div>
+
+    <div class="prototype">Prototype: mono_reflection_sighelper_get_signature_local</div>
+<p />
+
+</div> <a name="api:mono_reflection_type_from_name"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_type_from_name</div>
+
+    <div class="prototype">Prototype: mono_reflection_type_from_name</div>
+<p />
+
+</div> <a name="api:mono_reflection_generic_class_initialize"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_generic_class_initialize</div>
+
+    <div class="prototype">Prototype: mono_reflection_generic_class_initialize</div>
+<p />
+
+</div> <a name="api:mono_reflection_get_custom_attrs_info"></a>
+ <div class="api">
+    <div class="api-entry">mono_reflection_get_custom_attrs_info</div>
+
+    <div class="prototype">Prototype: mono_reflection_get_custom_attrs_info</div>
+<p />
+
+
+</div> <a name="api:mono_custom_attrs_construct"></a>
+ <div class="api">
+    <div class="api-entry">mono_custom_attrs_construct</div>
+
+    <div class="prototype">Prototype: mono_custom_attrs_construct</div>
+<p />
+
+</div> <a name="api:mono_custom_attrs_free"></a>
+ <div class="api">
+    <div class="api-entry">mono_custom_attrs_free</div>
+
+    <div class="prototype">Prototype: mono_custom_attrs_free</div>
+<p />
+
+</div> <a name="api:mono_custom_attrs_from_assembly"></a>
+ <div class="api">
+    <div class="api-entry">mono_custom_attrs_from_assembly</div>
+
+    <div class="prototype">Prototype: mono_custom_attrs_from_assembly</div>
+<p />
+
+</div> <a name="api:mono_custom_attrs_from_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_custom_attrs_from_class</div>
+
+    <div class="prototype">Prototype: mono_custom_attrs_from_class</div>
+<p />
+
+</div> <a name="api:mono_custom_attrs_from_event"></a>
+ <div class="api">
+    <div class="api-entry">mono_custom_attrs_from_event</div>
+
+    <div class="prototype">Prototype: mono_custom_attrs_from_event</div>
+<p />
+
+</div> <a name="api:mono_custom_attrs_from_field"></a>
+ <div class="api">
+    <div class="api-entry">mono_custom_attrs_from_field</div>
+
+    <div class="prototype">Prototype: mono_custom_attrs_from_field</div>
+<p />
+
+</div> <a name="api:mono_custom_attrs_from_index"></a>
+ <div class="api">
+    <div class="api-entry">mono_custom_attrs_from_index</div>
+
+    <div class="prototype">MonoCustomAttrInfo*
+mono_custom_attrs_from_index (MonoImage *image, guint32 idx)
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  NULL if no attributes are found or if a loading error occurs.
+</blockquote>
+
+</div> <a name="api:mono_custom_attrs_from_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_custom_attrs_from_method</div>
+
+    <div class="prototype">Prototype: mono_custom_attrs_from_method</div>
+<p />
+
+</div> <a name="api:mono_custom_attrs_from_param"></a>
+ <div class="api">
+    <div class="api-entry">mono_custom_attrs_from_param</div>
+
+    <div class="prototype">Prototype: mono_custom_attrs_from_param</div>
+<p />
+
+</div> <a name="api:mono_custom_attrs_from_property"></a>
+ <div class="api">
+    <div class="api-entry">mono_custom_attrs_from_property</div>
+
+    <div class="prototype">Prototype: mono_custom_attrs_from_property</div>
+<p />
+
+</div> <a name="api:mono_custom_attrs_has_attr"></a>
+ <div class="api">
+    <div class="api-entry">mono_custom_attrs_has_attr</div>
+
+    <div class="prototype">Prototype: mono_custom_attrs_has_attr</div>
+<p />
+
+
+</div> <a name="api:mono_module_file_get_object"></a>
+ <div class="api">
+    <div class="api-entry">mono_module_file_get_object</div>
+
+    <div class="prototype">Prototype: mono_module_file_get_object</div>
+<p />
+
+</div> <a name="api:mono_module_get_object"></a>
+ <div class="api">
+    <div class="api-entry">mono_module_get_object</div>
+
+    <div class="prototype">Prototype: mono_module_get_object</div>
+<p />
+
+</div> <a name="api:mono_method_body_get_object"></a>
+ <div class="api">
+    <div class="api-entry">mono_method_body_get_object</div>
+
+    <div class="prototype">Prototype: mono_method_body_get_object</div>
+<p />
+
+</div> <a name="api:mono_event_get_object"></a>
+ <div class="api">
+    <div class="api-entry">mono_event_get_object</div>
+
+    <div class="prototype">Prototype: mono_event_get_object</div>
+<p />
+
+</div> <a name="api:mono_assembly_get_object"></a>
+ <div class="api">
+    <div class="api-entry">mono_assembly_get_object</div>
+
+    <div class="prototype">Prototype: mono_assembly_get_object</div>
+<p />
+
+</div> <a name="api:mono_param_get_objects"></a>
+ <div class="api">
+    <div class="api-entry">mono_param_get_objects</div>
+
+    <div class="prototype">Prototype: mono_param_get_objects</div>
+<p />
+
+</div> <a name="api:mono_field_get_object"></a>
+ <div class="api">
+    <div class="api-entry">mono_field_get_object</div>
+
+    <div class="prototype">Prototype: mono_field_get_object</div>
+<p />
+
+</div> <a name="api:mono_property_get_object"></a>
+ <div class="api">
+    <div class="api-entry">mono_property_get_object</div>
+
+    <div class="prototype">Prototype: mono_property_get_object</div>
+<p />
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-security.html b/docs/deploy/mono-api-security.html
new file mode 100644
index 0000000..8fc3f6d
--- /dev/null
+++ b/docs/deploy/mono-api-security.html
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-security.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h3>Security Manager</h3>
+
+ <a name="api:mono_is_security_manager_active"></a>
+ <div class="api">
+    <div class="api-entry">mono_is_security_manager_active</div>
+
+    <div class="prototype">Prototype: mono_is_security_manager_active</div>
+<p />
+
+</div> <a name="api:mono_security_manager_get_methods"></a>
+ <div class="api">
+    <div class="api-entry">mono_security_manager_get_methods</div>
+
+    <div class="prototype">Prototype: mono_security_manager_get_methods</div>
+<p />
+
+</div> <a name="api:mono_activate_security_manager"></a>
+ <div class="api">
+    <div class="api-entry">mono_activate_security_manager</div>
+
+    <div class="prototype">Prototype: mono_activate_security_manager</div>
+<p />
+
+</div> <a name="api:mono_is_ecma_key"></a>
+ <div class="api">
+    <div class="api-entry">mono_is_ecma_key</div>
+
+    <div class="prototype">Prototype: mono_is_ecma_key</div>
+<p />
+
+</div> <a name="api:mono_get_context_capture_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_context_capture_method</div>
+
+    <div class="prototype">Prototype: mono_get_context_capture_method</div>
+<p />
+
+
+</div><h3>Declarative Security</h3>
+
+ <a name="api:mono_declsec_flags_from_assembly"></a>
+ <div class="api">
+    <div class="api-entry">mono_declsec_flags_from_assembly</div>
+
+    <div class="prototype">Prototype: mono_declsec_flags_from_assembly</div>
+<p />
+
+</div> <a name="api:mono_declsec_flags_from_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_declsec_flags_from_class</div>
+
+    <div class="prototype">Prototype: mono_declsec_flags_from_class</div>
+<p />
+
+</div> <a name="api:mono_declsec_flags_from_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_declsec_flags_from_method</div>
+
+    <div class="prototype">Prototype: mono_declsec_flags_from_method</div>
+<p />
+
+</div> <a name="api:mono_declsec_get_assembly_action"></a>
+ <div class="api">
+    <div class="api-entry">mono_declsec_get_assembly_action</div>
+
+    <div class="prototype">Prototype: mono_declsec_get_assembly_action</div>
+<p />
+
+</div> <a name="api:mono_declsec_get_class_action"></a>
+ <div class="api">
+    <div class="api-entry">mono_declsec_get_class_action</div>
+
+    <div class="prototype">Prototype: mono_declsec_get_class_action</div>
+<p />
+
+</div> <a name="api:mono_declsec_get_demands"></a>
+ <div class="api">
+    <div class="api-entry">mono_declsec_get_demands</div>
+
+    <div class="prototype">Prototype: mono_declsec_get_demands</div>
+<p />
+
+</div> <a name="api:mono_declsec_get_inheritdemands_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_declsec_get_inheritdemands_class</div>
+
+    <div class="prototype">Prototype: mono_declsec_get_inheritdemands_class</div>
+<p />
+
+</div> <a name="api:mono_declsec_get_inheritdemands_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_declsec_get_inheritdemands_method</div>
+
+    <div class="prototype">Prototype: mono_declsec_get_inheritdemands_method</div>
+<p />
+
+</div> <a name="api:mono_declsec_get_linkdemands"></a>
+ <div class="api">
+    <div class="api-entry">mono_declsec_get_linkdemands</div>
+
+    <div class="prototype">Prototype: mono_declsec_get_linkdemands</div>
+<p />
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-string.html b/docs/deploy/mono-api-string.html
new file mode 100644
index 0000000..784a878
--- /dev/null
+++ b/docs/deploy/mono-api-string.html
@@ -0,0 +1,508 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-string.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h2>Strings</h2>
+
+	<p />Strings representation inside the Mono runtime.
+
+<h3>Synopsis</h3>
+
+	<div class="header">
+#include <metadata/object.h>
+
+typedef struct {
+	MonoObject object;
+	gint32 length;
+	gunichar2 chars [0];
+} MonoString;
+
+MonoString* <a href="#api:mono_string_new">mono_string_new</a>              (MonoDomain *domain, 
+                                          const char *text);
+MonoString* <a href="#api:mono_string_new_len">mono_string_new_len</a>          (MonoDomain *domain, 
+                                          const char *text, 
+                                          guint length);
+MonoString* <a href="#api:mono_string_new_size">mono_string_new_size</a>         (MonoDomain *domain, 
+                                          gint32 len);
+MonoString* <a href="#api:mono_string_new_utf16">mono_string_new_utf16</a>        (MonoDomain *domain, 
+                                          const guint16 *text, 
+                                          gint32 len);
+MonoString* <a href="#api:mono_string_from_utf16">mono_string_from_utf16</a>       (gunichar2 *data);
+void        <a href="#api:mono_string_to_byvalstr">mono_string_to_byvalstr</a>      (gpointer dst, 
+                                          MonoString *src, 
+                                          int size);
+void        <a href="#api:mono_string_to_byvalwstr">mono_string_to_byvalwstr</a>     (gpointer dst, 
+                                          MonoString *src, 
+                                          int size);
+gunichar2*  <a href="#api:mono_string_to_utf16">mono_string_to_utf16</a>         (MonoString *s);
+char*       <a href="#api:mono_string_to_utf8">mono_string_to_utf8</a>          (MonoString *s);
+            <a href="#api:mono_string_utf16_to_builder"></a>                             
+            <a href="#api:mono_string_utf8_to_builder"></a>                             
+gboolean    <a href="#api:mono_string_equal">mono_string_equal</a>            (MonoString *s1, 
+                                          MonoString *s2);
+guint       <a href="#api:mono_string_hash">mono_string_hash</a>             (MonoString *s);
+MonoString* <a href="#api:mono_string_intern">mono_string_intern</a>           (MonoString *str);
+MonoString* <a href="#api:mono_string_is_interned">mono_string_is_interned</a>      (MonoString *o);
+MonoString* <a href="#api:mono_string_new_wrapper">mono_string_new_wrapper</a>      (const char *text);
+            <a href="#api:mono_string_chars"></a>                             
+int         <a href="#api:mono_string_length">mono_string_length</a>           (MonoString *s);
+gpointer    <a href="#api:mono_string_builder_to_utf16">mono_string_builder_to_utf16</a> (MonoStringBuilder *sb);
+gpointer    <a href="#api:mono_string_builder_to_utf8">mono_string_builder_to_utf8</a>  (MonoStringBuilder *sb);
+gunichar2*  <a href="#api:mono_unicode_from_external">mono_unicode_from_external</a>   (const gchar *in, 
+                                          gsize *bytes);
+            <a href="#api:mono_unicode_to_external"></a>                             
+            <a href="#api:mono_utf8_from_external"></a>                             
+
+	</div>
+
+	<p />All of the operations on strings are done on pointers to
+	MonoString objects, like this:
+
+	<div class="code">
+	MonoString *hello = mono_string_new (mono_domain_get (), "hello, world");
+	</div>
+
+	<p />Strings are bound to a particular application domain, which
+	is why it is necessary to pass a MonoDomain argument as the
+	first parameter to all the constructor functions. 
+
+	<p />Typically, you want to create the strings on the current
+	application domain, so a call to <tt>mono_domain_get()</tt> is
+	sufficient.
+	
+<h3>Constructors</h3>
+	
+ <a name="api:mono_string_new"></a>
+ <div class="api">
+    <div class="api-entry">mono_string_new</div>
+
+    <div class="prototype">MonoString*
+mono_string_new (MonoDomain *domain, const char *text)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>text:</i></dt><dd> a pointer to an utf8 string</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  A newly created string object which contains <i>text</i>.
+</blockquote>
+
+</div> <a name="api:mono_string_new_len"></a>
+ <div class="api">
+    <div class="api-entry">mono_string_new_len</div>
+
+    <div class="prototype">MonoString*
+mono_string_new_len (MonoDomain *domain, const char *text, guint length)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>text:</i></dt><dd> a pointer to an utf8 string</dd><dt><i>length:</i></dt><dd> number of bytes in <i>text</i> to consider</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  A newly created string object which contains <i>text</i>.
+</blockquote>
+
+</div> <a name="api:mono_string_new_size"></a>
+ <div class="api">
+    <div class="api-entry">mono_string_new_size</div>
+
+    <div class="prototype">MonoString*
+mono_string_new_size (MonoDomain *domain, gint32 len)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>text:</i></dt><dd> a pointer to an utf16 string</dd><dt><i>len:</i></dt><dd> the length of the string</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  A newly created string object of <i>len</i>
+</blockquote>
+
+</div> <a name="api:mono_string_new_utf16"></a>
+ <div class="api">
+    <div class="api-entry">mono_string_new_utf16</div>
+
+    <div class="prototype">MonoString*
+mono_string_new_utf16 (MonoDomain *domain, const guint16 *text, gint32 len)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>text:</i></dt><dd> a pointer to an utf16 string</dd><dt><i>len:</i></dt><dd> the length of the string</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  A newly created string object which contains <i>text</i>.
+</blockquote>
+
+</div> <a name="api:mono_string_from_utf16"></a>
+ <div class="api">
+    <div class="api-entry">mono_string_from_utf16</div>
+
+    <div class="prototype">MonoString*
+mono_string_from_utf16 (gunichar2 *data)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>data:</i></dt><dd> the UTF16 string (LPWSTR) to convert</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a MonoString.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Converts a NULL terminated UTF16 string (LPWSTR) to a MonoString.
+	
+
+
+</div><h3>Conversions</h3>
+
+ <a name="api:mono_string_to_byvalstr"></a>
+ <div class="api">
+    <div class="api-entry">mono_string_to_byvalstr</div>
+
+    <div class="prototype">void
+mono_string_to_byvalstr (gpointer dst, MonoString *src, int size)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>dst:</i></dt><dd> Where to store the null-terminated utf8 decoded string.</dd><dt><i>src:</i></dt><dd> the MonoString to copy.</dd><dt><i>size:</i></dt><dd> the maximum number of bytes to copy.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Copies the MonoString pointed to by <i>src</i> as a utf8 string
+	 into <i>dst</i>, it copies at most <i>size</i> bytes into the destination.
+
+</div> <a name="api:mono_string_to_byvalwstr"></a>
+ <div class="api">
+    <div class="api-entry">mono_string_to_byvalwstr</div>
+
+    <div class="prototype">void
+mono_string_to_byvalwstr (gpointer dst, MonoString *src, int size)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>dst:</i></dt><dd> Where to store the null-terminated utf16 decoded string.</dd><dt><i>src:</i></dt><dd> the MonoString to copy.</dd><dt><i>size:</i></dt><dd> the maximum number of bytes to copy.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Copies the MonoString pointed to by <i>src</i> as a utf16 string into
+	 <i>dst</i>, it copies at most <i>size</i> bytes into the destination (including
+	 a terminating 16-bit zero terminator).
+
+</div> <a name="api:mono_string_to_utf16"></a>
+ <div class="api">
+    <div class="api-entry">mono_string_to_utf16</div>
+
+    <div class="prototype">gunichar2*
+mono_string_to_utf16 (MonoString *s)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>s:</i></dt><dd> a MonoString</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Return an null-terminated array of the utf-16 chars
+	 contained in <i>s</i>. The result must be freed with g_free().
+	 This is a temporary helper until our string implementation
+	 is reworked to always include the null terminating char.
+
+</div> <a name="api:mono_string_to_utf8"></a>
+ <div class="api">
+    <div class="api-entry">mono_string_to_utf8</div>
+
+    <div class="prototype">char*
+mono_string_to_utf8 (MonoString *s)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>s:</i></dt><dd> a System.String</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Return the UTF8 representation for <i>s</i>.
+	 the resulting buffer nedds to be freed with g_free().
+
+</div> <a name="api:mono_string_utf16_to_builder"></a>
+ <div class="api">
+    <div class="api-entry">mono_string_utf16_to_builder</div>
+
+    <div class="prototype">Prototype: mono_string_utf16_to_builder</div>
+<p />
+
+</div> <a name="api:mono_string_utf8_to_builder"></a>
+ <div class="api">
+    <div class="api-entry">mono_string_utf8_to_builder</div>
+
+    <div class="prototype">Prototype: mono_string_utf8_to_builder</div>
+<p />
+
+
+</div><h3>Methods</h3>
+
+ <a name="api:mono_string_equal"></a>
+ <div class="api">
+    <div class="api-entry">mono_string_equal</div>
+
+    <div class="prototype">gboolean
+mono_string_equal (MonoString *s1, MonoString *s2)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>s1:</i></dt><dd> First string to compare</dd><dt><i>s2:</i></dt><dd> Second string to compare</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Returns FALSE if the strings differ.
+
+</div> <a name="api:mono_string_hash"></a>
+ <div class="api">
+    <div class="api-entry">mono_string_hash</div>
+
+    <div class="prototype">guint
+mono_string_hash (MonoString *s)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>s:</i></dt><dd> the string to hash</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Returns the hash for the string.
+
+</div> <a name="api:mono_string_intern"></a>
+ <div class="api">
+    <div class="api-entry">mono_string_intern</div>
+
+    <div class="prototype">MonoString*
+mono_string_intern (MonoString *str)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>o:</i></dt><dd> String to intern</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  The interned string.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Interns the string passed.  
+
+</div> <a name="api:mono_string_is_interned"></a>
+ <div class="api">
+    <div class="api-entry">mono_string_is_interned</div>
+
+    <div class="prototype">MonoString*
+mono_string_is_interned (MonoString *o)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>o:</i></dt><dd> String to probe</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Returns whether the string has been interned.
+
+</div> <a name="api:mono_string_new_wrapper"></a>
+ <div class="api">
+    <div class="api-entry">mono_string_new_wrapper</div>
+
+    <div class="prototype">MonoString*
+mono_string_new_wrapper (const char *text)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>text:</i></dt><dd> pointer to utf8 characters.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Helper function to create a string object from <i>text</i> in the current domain.
+
+</div> <a name="api:mono_string_chars"></a>
+ <div class="api">
+    <div class="api-entry">mono_string_chars</div>
+
+    <div class="prototype">gunichar2*
+mono_string_chars(MonoString *s)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>s:</i></dt><dd> a MonoString</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Returns a pointer to the UCS16 characters stored in the MonoString
+
+</div> <a name="api:mono_string_length"></a>
+ <div class="api">
+    <div class="api-entry">mono_string_length</div>
+
+    <div class="prototype">int
+mono_string_length (MonoString *s)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>s:</i></dt><dd> MonoString</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Returns the lenght in characters of the string
+
+
+
+</div><h3>String Builders</h3>
+
+	<p />These routines are used to work with the managed types
+	<tt>System.Text.StringBuilder</tt>.
+	
+ <a name="api:mono_string_builder_to_utf16"></a>
+ <div class="api">
+    <div class="api-entry">mono_string_builder_to_utf16</div>
+
+    <div class="prototype">gpointer
+mono_string_builder_to_utf16 (MonoStringBuilder *sb)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>sb:</i></dt><dd> the string builder</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a utf16 string with the contents of the StringBuilder.
+
+	
+	 The return value must not be freed.</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Converts to utf16 the contents of the MonoStringBuilder.
+	
+
+</div> <a name="api:mono_string_builder_to_utf8"></a>
+ <div class="api">
+    <div class="api-entry">mono_string_builder_to_utf8</div>
+
+    <div class="prototype">gpointer
+mono_string_builder_to_utf8 (MonoStringBuilder *sb)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>sb:</i></dt><dd> the string builder</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a utf8 string with the contents of the StringBuilder.
+
+	
+	 The return value must be released with g_free.</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Converts to utf8 the contents of the MonoStringBuilder.
+	
+
+
+</div><h3>Other Encodings</h3>
+
+	<p />These routines are used when coping with strings that come
+	from Mono's environment, and might be encoded in one or more
+	of the external encodings.
+
+	<p />For example, some file systems might historically contain a
+	mix of file names with both old and new encodings, typically
+	UTF8 for new files, and the old files would be encoded in an 8
+	bit character set (ISO-8859-1 for example).
+	
+	<p />These routines try a number of encodings, those specified
+	in the <tt>MONO_ENCODINGS</tt> environment variable and return
+	unicode strings that can be used internally.
+
+	<p />See the mono(1) man page for more details.
+	
+ <a name="api:mono_unicode_from_external"></a>
+ <div class="api">
+    <div class="api-entry">mono_unicode_from_external</div>
+
+    <div class="prototype">gunichar2*
+mono_unicode_from_external (const gchar *in, gsize *bytes)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>in:</i></dt><dd> pointers to the buffer.</dd><dt><i>bytes:</i></dt><dd> number of bytes in the string.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Tries to turn a NULL-terminated string into UTF16.
+	
+	 First, see if it's valid UTF8, in which case just turn it directly
+	 into UTF16.  Next, run through the colon-separated encodings in
+	 MONO_EXTERNAL_ENCODINGS and do an iconv conversion on each,
+	 returning the first successful conversion to UTF16.  If no
+	 conversion succeeds, return NULL.
+	
+	 Callers must free the returned string if not NULL. bytes holds the number
+	 of bytes in the returned string, not including the terminator.
+
+</div> <a name="api:mono_unicode_to_external"></a>
+ <div class="api">
+    <div class="api-entry">mono_unicode_to_external</div>
+
+    <div class="prototype">gchar*mono_unicode_to_external (const gunichar2 *uni)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>uni:</i></dt><dd> an UTF16 string to conver to an external representation.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Turns NULL-terminated UTF16 into either UTF8, or the first
+	 working item in MONO_EXTERNAL_ENCODINGS if set.  If no conversions
+	 work, then UTF8 is returned.
+	
+	 Callers must free the returned string.
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-threads.html b/docs/deploy/mono-api-threads.html
new file mode 100644
index 0000000..a5ac84d
--- /dev/null
+++ b/docs/deploy/mono-api-threads.html
@@ -0,0 +1,318 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-threads.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h2>Working with threads</h2>
+
+<h3>Thread API</h3>
+ <a name="api:mono_thread_abort_all_other_threads"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_abort_all_other_threads</div>
+
+    <div class="prototype">Prototype: mono_thread_abort_all_other_threads</div>
+<p />
+
+</div> <a name="api:mono_thread_attach"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_attach</div>
+
+    <div class="prototype">Prototype: mono_thread_attach</div>
+<p />
+
+</div> <a name="api:mono_thread_create"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_create</div>
+
+    <div class="prototype">Prototype: mono_thread_create</div>
+<p />
+
+</div> <a name="api:mono_thread_current"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_current</div>
+
+    <div class="prototype">Prototype: mono_thread_current</div>
+<p />
+
+</div> <a name="api:mono_thread_detach"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_detach</div>
+
+    <div class="prototype">Prototype: mono_thread_detach</div>
+<p />
+
+</div> <a name="api:mono_thread_exit"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_exit</div>
+
+    <div class="prototype">Prototype: mono_thread_exit</div>
+<p />
+
+</div> <a name="api:mono_thread_force_interruption_checkpoint"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_force_interruption_checkpoint</div>
+
+    <div class="prototype">Prototype: mono_thread_force_interruption_checkpoint</div>
+<p />
+
+</div> <a name="api:mono_thread_get_abort_signal"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_get_abort_signal</div>
+
+    <div class="prototype">Prototype: mono_thread_get_abort_signal</div>
+<p />
+
+</div> <a name="api:mono_thread_get_pending_exception"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_get_pending_exception</div>
+
+    <div class="prototype">Prototype: mono_thread_get_pending_exception</div>
+<p />
+
+</div> <a name="api:mono_thread_interruption_checkpoint"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_interruption_checkpoint</div>
+
+    <div class="prototype">Prototype: mono_thread_interruption_checkpoint</div>
+<p />
+
+</div> <a name="api:mono_thread_interruption_requested"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_interruption_requested</div>
+
+    <div class="prototype">Prototype: mono_thread_interruption_requested</div>
+<p />
+
+</div> <a name="api:mono_thread_interruption_request_flag"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_interruption_request_flag</div>
+
+    <div class="prototype">gint32* mono_thread_interruption_request_flag ()
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+	 Returns the address of a flag that will be non-zero if an interruption has
+	 been requested for a thread. The thread to interrupt may not be the current
+	 thread, so an additional call to mono_thread_interruption_requested() or
+	 mono_thread_interruption_checkpoint() is allways needed if the flag is not
+	 zero.
+
+</div> <a name="api:mono_thread_manage"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_manage</div>
+
+    <div class="prototype">Prototype: mono_thread_manage</div>
+<p />
+
+</div> <a name="api:mono_thread_new_init"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_new_init</div>
+
+    <div class="prototype">Prototype: mono_thread_new_init</div>
+<p />
+
+</div> <a name="api:mono_thread_pop_appdomain_ref"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_pop_appdomain_ref</div>
+
+    <div class="prototype">Prototype: mono_thread_pop_appdomain_ref</div>
+<p />
+
+</div> <a name="api:mono_thread_push_appdomain_ref"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_push_appdomain_ref</div>
+
+    <div class="prototype">Prototype: mono_thread_push_appdomain_ref</div>
+<p />
+
+</div> <a name="api:mono_thread_request_interruption"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_request_interruption</div>
+
+    <div class="prototype">Prototype: mono_thread_request_interruption</div>
+<p />
+
+</div> <a name="api:mono_threads_abort_appdomain_threads"></a>
+ <div class="api">
+    <div class="api-entry">mono_threads_abort_appdomain_threads</div>
+
+    <div class="prototype">Prototype: mono_threads_abort_appdomain_threads</div>
+<p />
+
+</div> <a name="api:mono_threads_get_default_stacksize"></a>
+ <div class="api">
+    <div class="api-entry">mono_threads_get_default_stacksize</div>
+
+    <div class="prototype">Prototype: mono_threads_get_default_stacksize</div>
+<p />
+
+</div> <a name="api:mono_threads_install_cleanup"></a>
+ <div class="api">
+    <div class="api-entry">mono_threads_install_cleanup</div>
+
+    <div class="prototype">Prototype: mono_threads_install_cleanup</div>
+<p />
+
+</div> <a name="api:mono_threads_set_default_stacksize"></a>
+ <div class="api">
+    <div class="api-entry">mono_threads_set_default_stacksize</div>
+
+    <div class="prototype">Prototype: mono_threads_set_default_stacksize</div>
+<p />
+
+</div> <a name="api:mono_thread_stop"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_stop</div>
+
+    <div class="prototype">Prototype: mono_thread_stop</div>
+<p />
+
+
+</div> <a name="api:mono_thread_get_main"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_get_main</div>
+
+    <div class="prototype">Prototype: mono_thread_get_main</div>
+<p />
+
+</div> <a name="api:mono_thread_set_main"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_set_main</div>
+
+    <div class="prototype">void
+mono_thread_set_main (MonoThread *thread)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>thread:</i></dt><dd> thread to set as the main thread</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This function can be used to instruct the runtime to treat <i>thread</i>
+	 as the main thread, ie, the thread that would normally execute the Main()
+	 method. This basically means that at the end of <i>thread</i>, the runtime will
+	 wait for the existing foreground threads to quit and other such details.
+
+</div> <a name="api:mono_thread_get_tls_key"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_get_tls_key</div>
+
+    <div class="prototype">Prototype: mono_thread_get_tls_key</div>
+<p />
+
+</div> <a name="api:mono_pthread_key_for_tls"></a>
+ <div class="api">
+    <div class="api-entry">mono_pthread_key_for_tls</div>
+
+    <div class="prototype">Prototype: mono_pthread_key_for_tls</div>
+<p />
+
+
+
+</div><h3>Thread Pool API</h3>
+ <a name="api:mono_thread_pool_add"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_pool_add</div>
+
+    <div class="prototype">Prototype: mono_thread_pool_add</div>
+<p />
+
+</div> <a name="api:mono_thread_pool_finish"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_pool_finish</div>
+
+    <div class="prototype">Prototype: mono_thread_pool_finish</div>
+<p />
+
+
+</div><h3>Monitors</h3>
+
+ <a name="api:mono_monitor_enter"></a>
+ <div class="api">
+    <div class="api-entry">mono_monitor_enter</div>
+
+    <div class="prototype">Prototype: mono_monitor_enter</div>
+<p />
+
+</div> <a name="api:mono_monitor_exit"></a>
+ <div class="api">
+    <div class="api-entry">mono_monitor_exit</div>
+
+    <div class="prototype">Prototype: mono_monitor_exit</div>
+<p />
+
+</div> <a name="api:mono_monitor_try_enter"></a>
+ <div class="api">
+    <div class="api-entry">mono_monitor_try_enter</div>
+
+    <div class="prototype">Prototype: mono_monitor_try_enter</div>
+<p />
+
+
+</div><h3>Mono VM development</h3>
+ <a name="api:mono_threads_clear_cached_culture"></a>
+ <div class="api">
+    <div class="api-entry">mono_threads_clear_cached_culture</div>
+
+    <div class="prototype">Prototype: mono_threads_clear_cached_culture</div>
+<p />
+
+</div> <a name="api:mono_thread_suspend_all_other_threads"></a>
+ <div class="api">
+    <div class="api-entry">mono_thread_suspend_all_other_threads</div>
+
+    <div class="prototype">Prototype: mono_thread_suspend_all_other_threads</div>
+<p />
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-trace.html b/docs/deploy/mono-api-trace.html
new file mode 100644
index 0000000..924e059
--- /dev/null
+++ b/docs/deploy/mono-api-trace.html
@@ -0,0 +1,196 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-trace.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h2>Tracing</h2>
+
+ <a name="api:mono_trace_cleanup"></a>
+ <div class="api">
+    <div class="api-entry">mono_trace_cleanup</div>
+
+    <div class="prototype">void 
+mono_trace_cleanup (void)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+	 Releases the mono tracer.
+
+</div> <a name="api:mono_trace"></a>
+ <div class="api">
+    <div class="api-entry">mono_trace</div>
+
+    <div class="prototype">void
+mono_trace(GLogLevelFlags level, MonoTraceMask mask, const char *format, ...) 
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+		<i>level</i>: Verbose level of the specified message
+		<i>mask</i>: Type of the specified message
+	
+	 Traces a new message, depending on the current logging level
+	 and trace mask.
+
+</div> <a name="api:mono_trace_parse_options"></a>
+ <div class="api">
+    <div class="api-entry">mono_trace_parse_options</div>
+
+    <div class="prototype">Prototype: mono_trace_parse_options</div>
+<p />
+
+</div> <a name="api:mono_trace_pop"></a>
+ <div class="api">
+    <div class="api-entry">mono_trace_pop</div>
+
+    <div class="prototype">void 
+mono_trace_pop (void)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+	 Restores level and mask values saved from a previous call to mono_trace_push.
+
+</div> <a name="api:mono_trace_push"></a>
+ <div class="api">
+    <div class="api-entry">mono_trace_push</div>
+
+    <div class="prototype">void 
+mono_trace_push (GLogLevelFlags level, MonoTraceMask mask)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+		<i>level</i>: Verbose level to set
+		<i>mask</i>: Mask of visible message types.
+	
+	 Saves the current values of level and mask then calls mono_trace_set
+	 with the specified new values.
+
+</div> <a name="api:mono_trace_set_assembly"></a>
+ <div class="api">
+    <div class="api-entry">mono_trace_set_assembly</div>
+
+    <div class="prototype">Prototype: mono_trace_set_assembly</div>
+<p />
+
+</div> <a name="api:mono_trace_set_level"></a>
+ <div class="api">
+    <div class="api-entry">mono_trace_set_level</div>
+
+    <div class="prototype">void 
+mono_trace_set_level (GLogLevelFlags level)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+		<i>level</i>: Verbose level to set
+	
+	 Sets the current logging level. Every subsequent call to
+	 mono_trace will check the visibility of a message against this
+	 value.
+
+</div> <a name="api:mono_trace_set_level_string"></a>
+ <div class="api">
+    <div class="api-entry">mono_trace_set_level_string</div>
+
+    <div class="prototype">Prototype: mono_trace_set_level_string</div>
+<p />
+
+</div> <a name="api:mono_trace_set_mask"></a>
+ <div class="api">
+    <div class="api-entry">mono_trace_set_mask</div>
+
+    <div class="prototype">void 
+mono_trace_set_mask (MonoTraceMask mask)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+		<i>mask</i>: Mask of visible message types.
+	
+	 Sets the current logging level. Every subsequent call to
+	 mono_trace will check the visibility of a message against this
+	 value.
+
+</div> <a name="api:mono_trace_set_mask_string"></a>
+ <div class="api">
+    <div class="api-entry">mono_trace_set_mask_string</div>
+
+    <div class="prototype">Prototype: mono_trace_set_mask_string</div>
+<p />
+
+</div> <a name="api:mono_tracev"></a>
+ <div class="api">
+    <div class="api-entry">mono_tracev</div>
+
+    <div class="prototype">void 
+mono_tracev (GLogLevelFlags level, MonoTraceMask mask, const char *format, va_list args)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+		<i>level</i>: Verbose level of the specified message
+		<i>mask</i>: Type of the specified message
+	
+	 Traces a new message, depending on the current logging level
+	 and trace mask.
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-type.html b/docs/deploy/mono-api-type.html
new file mode 100644
index 0000000..cfa9c90
--- /dev/null
+++ b/docs/deploy/mono-api-type.html
@@ -0,0 +1,232 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-type.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+ <a name="api:mono_type_create_from_typespec_full"></a>
+ <div class="api">
+    <div class="api-entry">mono_type_create_from_typespec_full</div>
+
+    <div class="prototype">Prototype: mono_type_create_from_typespec_full</div>
+<p />
+
+</div> <a name="api:mono_type_create_from_typespec"></a>
+ <div class="api">
+    <div class="api-entry">mono_type_create_from_typespec</div>
+
+    <div class="prototype">Prototype: mono_type_create_from_typespec</div>
+<p />
+
+</div> <a name="api:mono_type_full_name"></a>
+ <div class="api">
+    <div class="api-entry">mono_type_full_name</div>
+
+    <div class="prototype">Prototype: mono_type_full_name</div>
+<p />
+
+</div> <a name="api:mono_type_get_array_type"></a>
+ <div class="api">
+    <div class="api-entry">mono_type_get_array_type</div>
+
+    <div class="prototype">Prototype: mono_type_get_array_type</div>
+<p />
+
+</div> <a name="api:mono_type_get_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_type_get_class</div>
+
+    <div class="prototype">Prototype: mono_type_get_class</div>
+<p />
+
+</div> <a name="api:mono_type_get_desc"></a>
+ <div class="api">
+    <div class="api-entry">mono_type_get_desc</div>
+
+    <div class="prototype">Prototype: mono_type_get_desc</div>
+<p />
+
+</div> <a name="api:mono_type_get_full_name"></a>
+ <div class="api">
+    <div class="api-entry">mono_type_get_full_name</div>
+
+    <div class="prototype">char*
+mono_type_get_full_name (MonoClass *class)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>class:</i></dt><dd> a class</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the string representation for type as required by System.Reflection.
+
+	 The inverse of mono_reflection_parse_type ().</blockquote>
+
+</div> <a name="api:mono_type_get_modifiers"></a>
+ <div class="api">
+    <div class="api-entry">mono_type_get_modifiers</div>
+
+    <div class="prototype">Prototype: mono_type_get_modifiers</div>
+<p />
+
+</div> <a name="api:mono_type_get_name"></a>
+ <div class="api">
+    <div class="api-entry">mono_type_get_name</div>
+
+    <div class="prototype">char*
+mono_type_get_name (MonoType *type)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>type:</i></dt><dd> a type</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the string representation for type as it would be represented in IL code.
+</blockquote>
+
+</div> <a name="api:mono_type_get_signature"></a>
+ <div class="api">
+    <div class="api-entry">mono_type_get_signature</div>
+
+    <div class="prototype">Prototype: mono_type_get_signature</div>
+<p />
+
+</div> <a name="api:mono_type_get_type"></a>
+ <div class="api">
+    <div class="api-entry">mono_type_get_type</div>
+
+    <div class="prototype">Prototype: mono_type_get_type</div>
+<p />
+
+</div> <a name="api:mono_type_get_underlying_type"></a>
+ <div class="api">
+    <div class="api-entry">mono_type_get_underlying_type</div>
+
+    <div class="prototype">Prototype: mono_type_get_underlying_type</div>
+<p />
+
+</div> <a name="api:mono_type_initialization_init"></a>
+ <div class="api">
+    <div class="api-entry">mono_type_initialization_init</div>
+
+    <div class="prototype">Prototype: mono_type_initialization_init</div>
+<p />
+
+</div> <a name="api:mono_type_is_byref"></a>
+ <div class="api">
+    <div class="api-entry">mono_type_is_byref</div>
+
+    <div class="prototype">Prototype: mono_type_is_byref</div>
+<p />
+
+</div> <a name="api:mono_type_native_stack_size"></a>
+ <div class="api">
+    <div class="api-entry">mono_type_native_stack_size</div>
+
+    <div class="prototype">Prototype: mono_type_native_stack_size</div>
+<p />
+
+</div> <a name="api:mono_type_size"></a>
+ <div class="api">
+    <div class="api-entry">mono_type_size</div>
+
+    <div class="prototype">Prototype: mono_type_size</div>
+<p />
+
+</div> <a name="api:mono_type_stack_size"></a>
+ <div class="api">
+    <div class="api-entry">mono_type_stack_size</div>
+
+    <div class="prototype">Prototype: mono_type_stack_size</div>
+<p />
+
+</div> <a name="api:mono_type_to_ldind"></a>
+ <div class="api">
+    <div class="api-entry">mono_type_to_ldind</div>
+
+    <div class="prototype">Prototype: mono_type_to_ldind</div>
+<p />
+
+</div> <a name="api:mono_type_to_stind"></a>
+ <div class="api">
+    <div class="api-entry">mono_type_to_stind</div>
+
+    <div class="prototype">Prototype: mono_type_to_stind</div>
+<p />
+
+</div> <a name="api:mono_type_to_unmanaged"></a>
+ <div class="api">
+    <div class="api-entry">mono_type_to_unmanaged</div>
+
+    <div class="prototype">guint32
+mono_type_to_unmanaged (MonoType *type, MonoMarshalSpec *mspec, gboolean as_field,
+			gboolean unicode, MonoMarshalConv *conv) 
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  A MonoMarshalNative enumeration value (MONO_NATIVE_) value
+
+	 describing the underlying native reprensetation of the type.
+	
+<p />
+	 In addition the value pointed by
+	 "conv" will contain the kind of marshalling required for this
+	 particular type one of the MONO_MARSHAL_CONV_ enumeration values.</blockquote>
+
+</div> <a name="api:mono_type_get_name_full"></a>
+ <div class="api">
+    <div class="api-entry">mono_type_get_name_full</div>
+
+    <div class="prototype">Prototype: mono_type_get_name_full</div>
+<p />
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-types.html b/docs/deploy/mono-api-types.html
new file mode 100644
index 0000000..0774670
--- /dev/null
+++ b/docs/deploy/mono-api-types.html
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-types.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h3>Common core types</h3>
+
+	<p />These are accesor methods to retrieve the <tt>MonoClass
+	*</tt> handle for the various built-in CLI types. 
+	
+ <a name="api:mono_get_object_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_object_class</div>
+
+    <div class="prototype">Prototype: mono_get_object_class</div>
+<p />
+
+</div> <a name="api:mono_get_int16_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_int16_class</div>
+
+    <div class="prototype">Prototype: mono_get_int16_class</div>
+<p />
+
+</div> <a name="api:mono_get_int32_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_int32_class</div>
+
+    <div class="prototype">Prototype: mono_get_int32_class</div>
+<p />
+
+</div> <a name="api:mono_get_int64_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_int64_class</div>
+
+    <div class="prototype">Prototype: mono_get_int64_class</div>
+<p />
+
+</div> <a name="api:mono_get_double_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_double_class</div>
+
+    <div class="prototype">Prototype: mono_get_double_class</div>
+<p />
+
+</div> <a name="api:mono_get_enum_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_enum_class</div>
+
+    <div class="prototype">Prototype: mono_get_enum_class</div>
+<p />
+
+</div> <a name="api:mono_get_intptr_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_intptr_class</div>
+
+    <div class="prototype">Prototype: mono_get_intptr_class</div>
+<p />
+
+</div> <a name="api:mono_get_sbyte_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_sbyte_class</div>
+
+    <div class="prototype">Prototype: mono_get_sbyte_class</div>
+<p />
+
+</div> <a name="api:mono_get_single_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_single_class</div>
+
+    <div class="prototype">Prototype: mono_get_single_class</div>
+<p />
+
+</div> <a name="api:mono_get_string_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_string_class</div>
+
+    <div class="prototype">Prototype: mono_get_string_class</div>
+<p />
+
+</div> <a name="api:mono_get_thread_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_thread_class</div>
+
+    <div class="prototype">Prototype: mono_get_thread_class</div>
+<p />
+
+</div> <a name="api:mono_get_uint16_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_uint16_class</div>
+
+    <div class="prototype">Prototype: mono_get_uint16_class</div>
+<p />
+
+</div> <a name="api:mono_get_uint32_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_uint32_class</div>
+
+    <div class="prototype">Prototype: mono_get_uint32_class</div>
+<p />
+
+</div> <a name="api:mono_get_uint64_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_uint64_class</div>
+
+    <div class="prototype">Prototype: mono_get_uint64_class</div>
+<p />
+
+</div> <a name="api:mono_get_uintptr_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_uintptr_class</div>
+
+    <div class="prototype">Prototype: mono_get_uintptr_class</div>
+<p />
+
+</div> <a name="api:mono_get_void_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_void_class</div>
+
+    <div class="prototype">Prototype: mono_get_void_class</div>
+<p />
+
+</div> <a name="api:mono_get_array_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_array_class</div>
+
+    <div class="prototype">Prototype: mono_get_array_class</div>
+<p />
+
+</div> <a name="api:mono_get_boolean_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_boolean_class</div>
+
+    <div class="prototype">Prototype: mono_get_boolean_class</div>
+<p />
+
+</div> <a name="api:mono_get_byte_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_byte_class</div>
+
+    <div class="prototype">Prototype: mono_get_byte_class</div>
+<p />
+
+</div> <a name="api:mono_get_char_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_char_class</div>
+
+    <div class="prototype">Prototype: mono_get_char_class</div>
+<p />
+
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-unsorted.html b/docs/deploy/mono-api-unsorted.html
new file mode 100644
index 0000000..72a5bb9
--- /dev/null
+++ b/docs/deploy/mono-api-unsorted.html
@@ -0,0 +1,653 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-unsorted.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+
+
+ <a name="api:mini_compile_generic_method"></a>
+ <div class="api">
+    <div class="api-entry">mini_compile_generic_method</div>
+
+    <div class="prototype">Prototype: mini_compile_generic_method</div>
+<p />
+
+</div> <a name="api:mono_alloc_special_static_data"></a>
+ <div class="api">
+    <div class="api-entry">mono_alloc_special_static_data</div>
+
+    <div class="prototype">Prototype: mono_alloc_special_static_data</div>
+<p />
+
+</div> <a name="api:mono_bounded_array_class_get"></a>
+ <div class="api">
+    <div class="api-entry">mono_bounded_array_class_get</div>
+
+    <div class="prototype">MonoClass*
+mono_bounded_array_class_get (MonoClass *eclass, guint32 rank, gboolean bounded)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>element_class:</i></dt><dd> element class </dd><dt><i>rank:</i></dt><dd> the dimension of the array class</dd><dt><i>bounded:</i></dt><dd> whenever the array has non-zero bounds</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  a class object describing the array with element type <i>element_type</i> and 
+
+	 dimension <i>rank</i>. </blockquote>
+
+</div> <a name="api:mono_check_corlib_version"></a>
+ <div class="api">
+    <div class="api-entry">mono_check_corlib_version</div>
+
+    <div class="prototype">Prototype: mono_check_corlib_version</div>
+<p />
+
+</div> <a name="api:mono_compile_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_compile_method</div>
+
+    <div class="prototype">gpointer 
+mono_compile_method (MonoMethod *method)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>method:</i></dt><dd> The method to compile.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This JIT-compiles the method, and returns the pointer to the native code
+	 produced.
+
+</div> <a name="api:mono_config_for_assembly"></a>
+ <div class="api">
+    <div class="api-entry">mono_config_for_assembly</div>
+
+    <div class="prototype">Prototype: mono_config_for_assembly</div>
+<p />
+
+</div> <a name="api:mono_create_icall_signature"></a>
+ <div class="api">
+    <div class="api-entry">mono_create_icall_signature</div>
+
+    <div class="prototype">Prototype: mono_create_icall_signature</div>
+<p />
+
+</div> <a name="api:mono_create_jit_trampoline"></a>
+ <div class="api">
+    <div class="api-entry">mono_create_jit_trampoline</div>
+
+    <div class="prototype">Prototype: mono_create_jit_trampoline</div>
+<p />
+
+</div> <a name="api:mono_create_jump_table"></a>
+ <div class="api">
+    <div class="api-entry">mono_create_jump_table</div>
+
+    <div class="prototype">Prototype: mono_create_jump_table</div>
+<p />
+
+</div> <a name="api:mono_create_jump_trampoline"></a>
+ <div class="api">
+    <div class="api-entry">mono_create_jump_trampoline</div>
+
+    <div class="prototype">Prototype: mono_create_jump_trampoline</div>
+<p />
+
+</div> <a name="api:mono_dllmap_insert"></a>
+ <div class="api">
+    <div class="api-entry">mono_dllmap_insert</div>
+
+    <div class="prototype">Prototype: mono_dllmap_insert</div>
+<p />
+
+</div> <a name="api:mono_environment_exitcode_get"></a>
+ <div class="api">
+    <div class="api-entry">mono_environment_exitcode_get</div>
+
+    <div class="prototype">Prototype: mono_environment_exitcode_get</div>
+<p />
+
+</div> <a name="api:mono_environment_exitcode_set"></a>
+ <div class="api">
+    <div class="api-entry">mono_environment_exitcode_set</div>
+
+    <div class="prototype">Prototype: mono_environment_exitcode_set</div>
+<p />
+
+</div> <a name="api:mono_find_method_by_name"></a>
+ <div class="api">
+    <div class="api-entry">mono_find_method_by_name</div>
+
+    <div class="prototype">Prototype: mono_find_method_by_name</div>
+<p />
+
+</div> <a name="api:mono_free_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_free_method</div>
+
+    <div class="prototype">Prototype: mono_free_method</div>
+<p />
+
+</div> <a name="api:mono_free_verify_list"></a>
+ <div class="api">
+    <div class="api-entry">mono_free_verify_list</div>
+
+    <div class="prototype">Prototype: mono_free_verify_list</div>
+<p />
+
+</div> <a name="api:mono_get_config_dir"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_config_dir</div>
+
+    <div class="prototype">Prototype: mono_get_config_dir</div>
+<p />
+
+</div> <a name="api:mono_get_constant_value_from_blob"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_constant_value_from_blob</div>
+
+    <div class="prototype">Prototype: mono_get_constant_value_from_blob</div>
+<p />
+
+</div> <a name="api:mono_get_corlib"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_corlib</div>
+
+    <div class="prototype">Prototype: mono_get_corlib</div>
+<p />
+
+</div> <a name="api:mono_get_delegate_invoke"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_delegate_invoke</div>
+
+    <div class="prototype">MonoMethod*
+mono_get_delegate_invoke (MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>klass:</i></dt><dd> The delegate class</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the MonoMethod for the "Invoke" method in the delegate klass
+</blockquote>
+
+</div> <a name="api:mono_get_framework_version"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_framework_version</div>
+
+    <div class="prototype">Prototype: mono_get_framework_version</div>
+<p />
+
+</div> <a name="api:mono_get_method_full"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_method_full</div>
+
+    <div class="prototype">Prototype: mono_get_method_full</div>
+<p />
+
+</div> <a name="api:mono_get_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_method</div>
+
+    <div class="prototype">Prototype: mono_get_method</div>
+<p />
+
+</div> <a name="api:mono_get_root_domain"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_root_domain</div>
+
+    <div class="prototype">MonoDomain*
+mono_get_root_domain (void)
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  the root appdomain, to obtain the current domain, use mono_domain_get ()
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 The root AppDomain is the initial domain created by the runtime when it is
+	 initialized.  Programs execute on this AppDomain, but can create new ones
+	 later.   Currently there is no unmanaged API to create new AppDomains, this
+	 must be done from managed code.
+	
+
+</div> <a name="api:mono_get_runtime_version"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_runtime_version</div>
+
+    <div class="prototype">Prototype: mono_get_runtime_version</div>
+<p />
+
+</div> <a name="api:mono_get_special_static_data"></a>
+ <div class="api">
+    <div class="api-entry">mono_get_special_static_data</div>
+
+    <div class="prototype">Prototype: mono_get_special_static_data</div>
+<p />
+
+</div> <a name="api:mono_init_from_assembly"></a>
+ <div class="api">
+    <div class="api-entry">mono_init_from_assembly</div>
+
+    <div class="prototype">MonoDomain*
+mono_init_from_assembly (const char *domain_name, const char *filename)
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  the initial domain.
+</blockquote>
+<b>Remarks</b>
+<p />	 <p />
+
+	 Creates the initial application domain and initializes the mono_defaults
+	 structure.
+	 This function is guaranteed to not run any IL code.
+	 The runtime is initialized using the runtime version required by the
+	 provided executable. The version is determined by looking at the exe 
+	 configuration file and the version PE field)
+	
+
+</div> <a name="api:mono_init"></a>
+ <div class="api">
+    <div class="api-entry">mono_init</div>
+
+    <div class="prototype">MonoDomain*
+mono_init (const char *domain_name)
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  the initial domain.
+</blockquote>
+<b>Remarks</b>
+<p />	 <p />
+
+	 Creates the initial application domain and initializes the mono_defaults
+	 structure.
+	 This function is guaranteed to not run any IL code.
+	 The runtime is initialized using the default runtime version.
+	
+
+</div> <a name="api:mono_init_version"></a>
+ <div class="api">
+    <div class="api-entry">mono_init_version</div>
+
+    <div class="prototype">MonoDomain*
+mono_init_version (const char *domain_name, const char *version)
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  the initial domain.
+</blockquote>
+<b>Remarks</b>
+<p />	 <p />
+
+	 Creates the initial application domain and initializes the mono_defaults
+	 structure.
+	 This function is guaranteed to not run any IL code.
+	 The runtime is initialized using the provided rutime version.
+	
+
+</div> <a name="api:mono_invoke_delegate"></a>
+ <div class="api">
+    <div class="api-entry">mono_invoke_delegate</div>
+
+    <div class="prototype">Prototype: mono_invoke_delegate</div>
+<p />
+
+</div> <a name="api:mono_jit_exec"></a>
+ <div class="api">
+    <div class="api-entry">mono_jit_exec</div>
+
+    <div class="prototype">int 
+mono_jit_exec (MonoDomain *domain, MonoAssembly *assembly, int argc, char *argv[])
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>assembly:</i></dt><dd> reference to an assembly</dd><dt><i>argc:</i></dt><dd> argument count</dd><dt><i>argv:</i></dt><dd> argument vector</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Start execution of a program.
+
+</div> <a name="api:mono_lookup_internal_call"></a>
+ <div class="api">
+    <div class="api-entry">mono_lookup_internal_call</div>
+
+    <div class="prototype">Prototype: mono_lookup_internal_call</div>
+<p />
+
+</div> <a name="api:mono_lookup_pinvoke_call"></a>
+ <div class="api">
+    <div class="api-entry">mono_lookup_pinvoke_call</div>
+
+    <div class="prototype">Prototype: mono_lookup_pinvoke_call</div>
+<p />
+
+</div> <a name="api:mono_main"></a>
+ <div class="api">
+    <div class="api-entry">mono_main</div>
+
+    <div class="prototype">Prototype: mono_main</div>
+<p />
+
+</div> <a name="api:mono_message_init"></a>
+ <div class="api">
+    <div class="api-entry">mono_message_init</div>
+
+    <div class="prototype">Prototype: mono_message_init</div>
+<p />
+
+</div> <a name="api:mono_message_invoke"></a>
+ <div class="api">
+    <div class="api-entry">mono_message_invoke</div>
+
+    <div class="prototype">Prototype: mono_message_invoke</div>
+<p />
+
+</div> <a name="api:mono_parse_default_optimizations"></a>
+ <div class="api">
+    <div class="api-entry">mono_parse_default_optimizations</div>
+
+    <div class="prototype">Prototype: mono_parse_default_optimizations</div>
+<p />
+
+</div> <a name="api:mono_perform_abc_removal"></a>
+ <div class="api">
+    <div class="api-entry">mono_perform_abc_removal</div>
+
+    <div class="prototype">void
+mono_perform_abc_removal (MonoCompile *cfg)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>cfg:</i></dt><dd> Control Flow Graph</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Performs the ABC removal from a cfg in SSA form.
+	 It does the following:
+	 - Prepare the evaluation area
+	 - Allocate memory for the relation graph in the evaluation area
+	   (of course, only for variable definitions) and summarize there all
+	   variable definitions
+	 - Allocate memory for the evaluation contexts in the evaluation area
+	 - Recursively process all the BBs in the dominator tree (it is enough
+	   to invoke the processing on the entry BB)
+	
+<p />
+	 cfg: the method code
+
+</div> <a name="api:mono_ptr_class_get"></a>
+ <div class="api">
+    <div class="api-entry">mono_ptr_class_get</div>
+
+    <div class="prototype">Prototype: mono_ptr_class_get</div>
+<p />
+
+</div> <a name="api:mono_register_bundled_assemblies"></a>
+ <div class="api">
+    <div class="api-entry">mono_register_bundled_assemblies</div>
+
+    <div class="prototype">Prototype: mono_register_bundled_assemblies</div>
+<p />
+
+</div> <a name="api:mono_release_type_locks"></a>
+ <div class="api">
+    <div class="api-entry">mono_release_type_locks</div>
+
+    <div class="prototype">Prototype: mono_release_type_locks</div>
+<p />
+
+</div> <a name="api:mono_remote_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_remote_class</div>
+
+    <div class="prototype">MonoRemoteClass*
+mono_remote_class (MonoDomain *domain, MonoString *class_name, MonoClass *proxy_class)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>domain:</i></dt><dd> the application domain</dd><dt><i>class_name:</i></dt><dd> name of the remote class</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Creates and initializes a MonoRemoteClass object for a remote type. 
+	
+<p />
+
+</div> <a name="api:mono_remote_class_vtable"></a>
+ <div class="api">
+    <div class="api-entry">mono_remote_class_vtable</div>
+
+    <div class="prototype">Prototype: mono_remote_class_vtable</div>
+<p />
+
+</div> <a name="api:mono_runtime_class_init"></a>
+ <div class="api">
+    <div class="api-entry">mono_runtime_class_init</div>
+
+    <div class="prototype">Prototype: mono_runtime_class_init</div>
+<p />
+
+</div> <a name="api:mono_runtime_cleanup"></a>
+ <div class="api">
+    <div class="api-entry">mono_runtime_cleanup</div>
+
+    <div class="prototype">void
+mono_runtime_cleanup (MonoDomain *domain)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>domain:</i></dt><dd> unused.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Internal routine.
+	
+	 This must not be called while there are still running threads executing
+	 managed code.
+
+</div> <a name="api:mono_runtime_free_method"></a>
+ <div class="api">
+    <div class="api-entry">mono_runtime_free_method</div>
+
+    <div class="prototype">void
+mono_runtime_free_method (MonoDomain *domain, MonoMethod *method)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 <i>domain</i>; domain where the method is hosted 
+	 <i>method</i>: method to release
+	
+	 This routine is invoked to free the resources associated with
+	 a method that has been JIT compiled.  This is used to discard
+	 methods that were used only temporarily (for example, used in marshalling)
+	
+
+</div> <a name="api:mono_runtime_get_main_args"></a>
+ <div class="api">
+    <div class="api-entry">mono_runtime_get_main_args</div>
+
+    <div class="prototype">MonoArray*
+mono_runtime_get_main_args (void)
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  a MonoArray with the arguments passed to the main program
+</blockquote>
+
+</div> <a name="api:mono_runtime_init"></a>
+ <div class="api">
+    <div class="api-entry">mono_runtime_init</div>
+
+    <div class="prototype">void
+mono_runtime_init (MonoDomain *domain, MonoThreadStartCB start_cb,
+		   MonoThreadAttachCB attach_cb)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>domain:</i></dt><dd> domain returned by mono_init ()</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Initialize the core AppDomain: this function will run also some
+	 IL initialization code, so it needs the execution engine to be fully 
+	 operational.
+	
+	 AppDomain.SetupInformation is set up in mono_runtime_exec_main, where
+	 we know the entry_assembly.
+	
+
+</div> <a name="api:mono_runtime_is_shutting_down"></a>
+ <div class="api">
+    <div class="api-entry">mono_runtime_is_shutting_down</div>
+
+    <div class="prototype">gboolean
+mono_runtime_is_shutting_down (void)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+	 Returns whether the runtime has been flagged for shutdown.
+	
+	 This is consumed by the P:System.Environment.HasShutdownStarted
+	 property.
+	
+
+</div> <a name="api:mono_runtime_object_init"></a>
+ <div class="api">
+    <div class="api-entry">mono_runtime_object_init</div>
+
+    <div class="prototype">Prototype: mono_runtime_object_init</div>
+<p />
+
+</div> <a name="api:mono_runtime_quit"></a>
+ <div class="api">
+    <div class="api-entry">mono_runtime_quit</div>
+
+    <div class="prototype">Prototype: mono_runtime_quit</div>
+<p />
+
+</div> <a name="api:mono_runtime_run_main"></a>
+ <div class="api">
+    <div class="api-entry">mono_runtime_run_main</div>
+
+    <div class="prototype">int
+mono_runtime_run_main (MonoMethod *method, int argc, char* argv[],
+		       MonoObject **exc)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>method:</i></dt><dd> the method to start the application with (usually Main)</dd><dt><i>argc:</i></dt><dd> number of arguments from the command line</dd><dt><i>argv:</i></dt><dd> array of strings from the command line</dd><dt><i>exc:</i></dt><dd> excetption results</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Execute a standard Main() method (argc/argv contains the
+	 executable name). This method also sets the command line argument value
+	 needed by System.Environment.
+	
+	
+<p />
+
+</div> <a name="api:mono_table_info_get_rows"></a>
+ <div class="api">
+    <div class="api-entry">mono_table_info_get_rows</div>
+
+    <div class="prototype">Prototype: mono_table_info_get_rows</div>
+<p />
+
+</div> <a name="api:mono_upgrade_remote_class"></a>
+ <div class="api">
+    <div class="api-entry">mono_upgrade_remote_class</div>
+
+    <div class="prototype">void
+mono_upgrade_remote_class (MonoDomain *domain, MonoObject *proxy_object, MonoClass *klass)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>domain:</i></dt><dd> the application domain</dd><dt><i>tproxy:</i></dt><dd> the proxy whose remote class has to be upgraded.</dd><dt><i>klass:</i></dt><dd> class to which the remote class can be casted.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Updates the vtable of the remote class by adding the necessary method slots
+	 and interface offsets so it can be safely casted to klass. klass can be a
+	 class or an interface.
+
+</div> <a name="api:mono_upgrade_remote_class_wrapper"></a>
+ <div class="api">
+    <div class="api-entry">mono_upgrade_remote_class_wrapper</div>
+
+    <div class="prototype">Prototype: mono_upgrade_remote_class_wrapper</div>
+<p />
+
+</div> <a name="api:mono_verify_corlib"></a>
+ <div class="api">
+    <div class="api-entry">mono_verify_corlib</div>
+
+    <div class="prototype">Prototype: mono_verify_corlib</div>
+<p />
+
+</div> <a name="api:mono_vtable_get_static_field_data"></a>
+ <div class="api">
+    <div class="api-entry">mono_vtable_get_static_field_data</div>
+
+    <div class="prototype">Prototype: mono_vtable_get_static_field_data</div>
+<p />
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-utils.html b/docs/deploy/mono-api-utils.html
new file mode 100644
index 0000000..2d5fa5f
--- /dev/null
+++ b/docs/deploy/mono-api-utils.html
@@ -0,0 +1,702 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-utils.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h2>Utility Methods</h2>
+
+<h3>Bitsets</h3>
+
+	<p />MonoBitsets are a set of routines used to manipulate sets
+	of bits.
+	
+ <a name="api:mono_bitset_alloc_size"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_alloc_size</div>
+
+    <div class="prototype">Prototype: mono_bitset_alloc_size</div>
+<p />
+
+</div> <a name="api:mono_bitset_clear"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_clear</div>
+
+    <div class="prototype">Prototype: mono_bitset_clear</div>
+<p />
+
+</div> <a name="api:mono_bitset_clear_all"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_clear_all</div>
+
+    <div class="prototype">Prototype: mono_bitset_clear_all</div>
+<p />
+
+</div> <a name="api:mono_bitset_clone"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_clone</div>
+
+    <div class="prototype">Prototype: mono_bitset_clone</div>
+<p />
+
+</div> <a name="api:mono_bitset_copyto"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_copyto</div>
+
+    <div class="prototype">Prototype: mono_bitset_copyto</div>
+<p />
+
+</div> <a name="api:mono_bitset_count"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_count</div>
+
+    <div class="prototype">Prototype: mono_bitset_count</div>
+<p />
+
+</div> <a name="api:mono_bitset_equal"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_equal</div>
+
+    <div class="prototype">Prototype: mono_bitset_equal</div>
+<p />
+
+</div> <a name="api:mono_bitset_find_first"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_find_first</div>
+
+    <div class="prototype">Prototype: mono_bitset_find_first</div>
+<p />
+
+</div> <a name="api:mono_bitset_find_last"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_find_last</div>
+
+    <div class="prototype">Prototype: mono_bitset_find_last</div>
+<p />
+
+</div> <a name="api:mono_bitset_find_start"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_find_start</div>
+
+    <div class="prototype">Prototype: mono_bitset_find_start</div>
+<p />
+
+</div> <a name="api:mono_bitset_foreach"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_foreach</div>
+
+    <div class="prototype">Prototype: mono_bitset_foreach</div>
+<p />
+
+</div> <a name="api:mono_bitset_free"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_free</div>
+
+    <div class="prototype">Prototype: mono_bitset_free</div>
+<p />
+
+</div> <a name="api:mono_bitset_intersection"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_intersection</div>
+
+    <div class="prototype">Prototype: mono_bitset_intersection</div>
+<p />
+
+</div> <a name="api:mono_bitset_invert"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_invert</div>
+
+    <div class="prototype">Prototype: mono_bitset_invert</div>
+<p />
+
+</div> <a name="api:mono_bitset_mem_new"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_mem_new</div>
+
+    <div class="prototype">Prototype: mono_bitset_mem_new</div>
+<p />
+
+</div> <a name="api:mono_bitset_new"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_new</div>
+
+    <div class="prototype">Prototype: mono_bitset_new</div>
+<p />
+
+</div> <a name="api:mono_bitset_set"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_set</div>
+
+    <div class="prototype">Prototype: mono_bitset_set</div>
+<p />
+
+</div> <a name="api:mono_bitset_set_all"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_set_all</div>
+
+    <div class="prototype">Prototype: mono_bitset_set_all</div>
+<p />
+
+</div> <a name="api:mono_bitset_size"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_size</div>
+
+    <div class="prototype">Prototype: mono_bitset_size</div>
+<p />
+
+</div> <a name="api:mono_bitset_sub"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_sub</div>
+
+    <div class="prototype">Prototype: mono_bitset_sub</div>
+<p />
+
+</div> <a name="api:mono_bitset_test"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_test</div>
+
+    <div class="prototype">Prototype: mono_bitset_test</div>
+<p />
+
+</div> <a name="api:mono_bitset_test_bulk"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_test_bulk</div>
+
+    <div class="prototype">Prototype: mono_bitset_test_bulk</div>
+<p />
+
+</div> <a name="api:mono_bitset_union"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_union</div>
+
+    <div class="prototype">Prototype: mono_bitset_union</div>
+<p />
+
+</div> <a name="api:mono_bitset_find_first_unset"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_find_first_unset</div>
+
+    <div class="prototype">Prototype: mono_bitset_find_first_unset</div>
+<p />
+
+</div> <a name="api:mono_bitset_intersection_2"></a>
+ <div class="api">
+    <div class="api-entry">mono_bitset_intersection_2</div>
+
+    <div class="prototype">Prototype: mono_bitset_intersection_2</div>
+<p />
+
+
+</div><h3>Hashtables</h3>
+
+	<p /><tt>GHashTable</tt> is used when you need to store object
+	references into a hashtable, objects stored in a
+	<tt>MonoGHashTable</tt> are properly tracked by the garbage
+	collector.
+
+	<p />The <tt>MonoGHashTable</tt> data type has the same API as
+	the GLIB.
+	
+ <a name="api:mono_g_hash_table_destroy"></a>
+ <div class="api">
+    <div class="api-entry">mono_g_hash_table_destroy</div>
+
+    <div class="prototype">Prototype: mono_g_hash_table_destroy</div>
+<p />
+
+</div> <a name="api:mono_g_hash_table_foreach"></a>
+ <div class="api">
+    <div class="api-entry">mono_g_hash_table_foreach</div>
+
+    <div class="prototype">Prototype: mono_g_hash_table_foreach</div>
+<p />
+
+</div> <a name="api:mono_g_hash_table_foreach_remove"></a>
+ <div class="api">
+    <div class="api-entry">mono_g_hash_table_foreach_remove</div>
+
+    <div class="prototype">Prototype: mono_g_hash_table_foreach_remove</div>
+<p />
+
+</div> <a name="api:mono_g_hash_table_foreach_steal"></a>
+ <div class="api">
+    <div class="api-entry">mono_g_hash_table_foreach_steal</div>
+
+    <div class="prototype">Prototype: mono_g_hash_table_foreach_steal</div>
+<p />
+
+</div> <a name="api:mono_g_hash_table_insert"></a>
+ <div class="api">
+    <div class="api-entry">mono_g_hash_table_insert</div>
+
+    <div class="prototype">Prototype: mono_g_hash_table_insert</div>
+<p />
+
+</div> <a name="api:mono_g_hash_table_lookup"></a>
+ <div class="api">
+    <div class="api-entry">mono_g_hash_table_lookup</div>
+
+    <div class="prototype">Prototype: mono_g_hash_table_lookup</div>
+<p />
+
+</div> <a name="api:mono_g_hash_table_lookup_extended"></a>
+ <div class="api">
+    <div class="api-entry">mono_g_hash_table_lookup_extended</div>
+
+    <div class="prototype">Prototype: mono_g_hash_table_lookup_extended</div>
+<p />
+
+</div> <a name="api:mono_g_hash_table_new"></a>
+ <div class="api">
+    <div class="api-entry">mono_g_hash_table_new</div>
+
+    <div class="prototype">Prototype: mono_g_hash_table_new</div>
+<p />
+
+</div> <a name="api:mono_g_hash_table_new_full"></a>
+ <div class="api">
+    <div class="api-entry">mono_g_hash_table_new_full</div>
+
+    <div class="prototype">Prototype: mono_g_hash_table_new_full</div>
+<p />
+
+</div> <a name="api:mono_g_hash_table_remap"></a>
+ <div class="api">
+    <div class="api-entry">mono_g_hash_table_remap</div>
+
+    <div class="prototype">void        
+mono_g_hash_table_remap (MonoGHashTable *hash_table,
+						 MonoGRemapperFunc func,
+						 gpointer user_data)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 <p />
+
+	  Calls the given function for each key-value pair in the hash table, 
+	 and replaces the value stored in the hash table by the value returned by 
+	 the function.
+	
+<p />
+
+</div> <a name="api:mono_g_hash_table_remove"></a>
+ <div class="api">
+    <div class="api-entry">mono_g_hash_table_remove</div>
+
+    <div class="prototype">Prototype: mono_g_hash_table_remove</div>
+<p />
+
+</div> <a name="api:mono_g_hash_table_replace"></a>
+ <div class="api">
+    <div class="api-entry">mono_g_hash_table_replace</div>
+
+    <div class="prototype">Prototype: mono_g_hash_table_replace</div>
+<p />
+
+</div> <a name="api:mono_g_hash_table_size"></a>
+ <div class="api">
+    <div class="api-entry">mono_g_hash_table_size</div>
+
+    <div class="prototype">Prototype: mono_g_hash_table_size</div>
+<p />
+
+</div> <a name="api:mono_g_hash_table_steal"></a>
+ <div class="api">
+    <div class="api-entry">mono_g_hash_table_steal</div>
+
+    <div class="prototype">Prototype: mono_g_hash_table_steal</div>
+<p />
+
+
+</div><h3>Raw buffer</h3>
+
+	<p />Raw buffers provide an abstraction to load segments of
+	files into memory.  If the operating system supports it, the
+	files are not loaded, but are mapped into the address space of
+	the process (On Unix, this is done using the <tt>mmap(2)</tt>
+	system call).
+	
+ <a name="api:mono_raw_buffer_load"></a>
+ <div class="api">
+    <div class="api-entry">mono_raw_buffer_load</div>
+
+    <div class="prototype">Prototype: mono_raw_buffer_load</div>
+<p />
+
+</div> <a name="api:mono_raw_buffer_update"></a>
+ <div class="api">
+    <div class="api-entry">mono_raw_buffer_update</div>
+
+    <div class="prototype">Prototype: mono_raw_buffer_update</div>
+<p />
+
+</div> <a name="api:mono_raw_buffer_free"></a>
+ <div class="api">
+    <div class="api-entry">mono_raw_buffer_free</div>
+
+    <div class="prototype">Prototype: mono_raw_buffer_free</div>
+<p />
+
+
+</div><h3>SHA1 Signatures</h3>
+
+ <a name="api:mono_sha1_init"></a>
+ <div class="api">
+    <div class="api-entry">mono_sha1_init</div>
+
+    <div class="prototype">Prototype: mono_sha1_init</div>
+<p />
+
+</div> <a name="api:mono_sha1_update"></a>
+ <div class="api">
+    <div class="api-entry">mono_sha1_update</div>
+
+    <div class="prototype">Prototype: mono_sha1_update</div>
+<p />
+
+</div> <a name="api:mono_sha1_get_digest_from_file"></a>
+ <div class="api">
+    <div class="api-entry">mono_sha1_get_digest_from_file</div>
+
+    <div class="prototype">Prototype: mono_sha1_get_digest_from_file</div>
+<p />
+
+</div> <a name="api:mono_sha1_get_digest"></a>
+ <div class="api">
+    <div class="api-entry">mono_sha1_get_digest</div>
+
+    <div class="prototype">Prototype: mono_sha1_get_digest</div>
+<p />
+
+</div> <a name="api:mono_sha1_final"></a>
+ <div class="api">
+    <div class="api-entry">mono_sha1_final</div>
+
+    <div class="prototype">Prototype: mono_sha1_final</div>
+<p />
+
+
+</div><h3>MD5 Signatures</h3>
+
+ <a name="api:mono_md5_init"></a>
+ <div class="api">
+    <div class="api-entry">mono_md5_init</div>
+
+    <div class="prototype">Prototype: mono_md5_init</div>
+<p />
+
+</div> <a name="api:mono_md5_update"></a>
+ <div class="api">
+    <div class="api-entry">mono_md5_update</div>
+
+    <div class="prototype">Prototype: mono_md5_update</div>
+<p />
+
+</div> <a name="api:mono_md5_get_digest_from_file"></a>
+ <div class="api">
+    <div class="api-entry">mono_md5_get_digest_from_file</div>
+
+    <div class="prototype">Prototype: mono_md5_get_digest_from_file</div>
+<p />
+
+</div> <a name="api:mono_md5_get_digest"></a>
+ <div class="api">
+    <div class="api-entry">mono_md5_get_digest</div>
+
+    <div class="prototype">Prototype: mono_md5_get_digest</div>
+<p />
+
+</div> <a name="api:mono_md5_final"></a>
+ <div class="api">
+    <div class="api-entry">mono_md5_final</div>
+
+    <div class="prototype">Prototype: mono_md5_final</div>
+<p />
+
+
+</div> <a name="api:mono_digest_get_public_token"></a>
+ <div class="api">
+    <div class="api-entry">mono_digest_get_public_token</div>
+
+    <div class="prototype">Prototype: mono_digest_get_public_token</div>
+<p />
+
+
+</div><h3>Memory Pools</h3>
+
+	<p />Memory pools are a convenient way of tracking memory
+	allocations that are used for one specific task, they are also
+	faster than using the standard memory allocation procedures,
+	as they are designed to be used only by a single thread at a
+	time. 
+
+	<p /><tt>MonoMemPool</tt> objects are not thread safe, which
+	means that you should not share the objects across multiple
+	threads without providing proper locking around it (unlike
+	<tt>malloc</tt> and <tt>free</tt> which are thread safe). 
+
+	<p />When a <tt>MonoMemPool</tt> is released with
+	<tt>mono_mempool_destroy</tt> all of the of the memory
+	allocated from that memory pool with
+	<tt>mono_mempool_alloc</tt> and <tt>mono_mempool_alloc0</tt>
+	is released.
+	
+ <a name="api:mono_mempool_new"></a>
+ <div class="api">
+    <div class="api-entry">mono_mempool_new</div>
+
+    <div class="prototype">MonoMemPool*
+mono_mempool_new (void)
+
+</div>
+<p />
+<b>Returns</b>
+<blockquote>	  a new memory pool.
+</blockquote>
+
+</div> <a name="api:mono_mempool_destroy"></a>
+ <div class="api">
+    <div class="api-entry">mono_mempool_destroy</div>
+
+    <div class="prototype">void
+mono_mempool_destroy (MonoMemPool *pool)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>pool:</i></dt><dd> the memory pool to destroy</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Free all memory associated with this pool.
+
+</div> <a name="api:mono_mempool_alloc"></a>
+ <div class="api">
+    <div class="api-entry">mono_mempool_alloc</div>
+
+    <div class="prototype">gpointer
+mono_mempool_alloc (MonoMemPool *pool, guint size)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>pool:</i></dt><dd> the momory pool to use</dd><dt><i>size:</i></dt><dd> size of the momory block</dd></blockquote>
+<b>Returns</b>
+<blockquote>	  the address of a newly allocated memory block.
+</blockquote>
+<b>Remarks</b>
+<p />	 
+	 Allocates a new block of memory in <i>pool</i>.
+	
+
+</div> <a name="api:mono_mempool_alloc0"></a>
+ <div class="api">
+    <div class="api-entry">mono_mempool_alloc0</div>
+
+    <div class="prototype">gpointer
+mono_mempool_alloc0 (MonoMemPool *pool, guint size)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+	 same as mono_mempool_alloc, but fills memory with zero.
+
+</div> <a name="api:mono_mempool_empty"></a>
+ <div class="api">
+    <div class="api-entry">mono_mempool_empty</div>
+
+    <div class="prototype">Prototype: mono_mempool_empty</div>
+<p />
+
+</div> <a name="api:mono_mempool_invalidate"></a>
+ <div class="api">
+    <div class="api-entry">mono_mempool_invalidate</div>
+
+    <div class="prototype">void
+mono_mempool_invalidate (MonoMemPool *pool)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>pool:</i></dt><dd> the memory pool to invalidate</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Fill the memory associated with this pool to 0x2a (42). Useful for debugging.
+
+</div> <a name="api:mono_mempool_stats"></a>
+ <div class="api">
+    <div class="api-entry">mono_mempool_stats</div>
+
+    <div class="prototype">void
+mono_mempool_stats (MonoMemPool *pool)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>pool:</i></dt><dd> the momory pool we need stats for</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Print a few stats about the mempool
+
+</div> <a name="api:mono_mempool_contains_addr"></a>
+ <div class="api">
+    <div class="api-entry">mono_mempool_contains_addr</div>
+
+    <div class="prototype">gboolean
+mono_mempool_contains_addr (MonoMemPool *pool,
+							gpointer addr)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+	  Determines whenever ADDR is inside the memory used by the mempool.
+
+ 
+</div><h3>JIT utilities</h3>
+
+ <a name="api:mono_is_power_of_two"></a>
+ <div class="api">
+    <div class="api-entry">mono_is_power_of_two</div>
+
+    <div class="prototype">Prototype: mono_is_power_of_two</div>
+<p />
+
+</div> <a name="api:mono_signbit_double"></a>
+ <div class="api">
+    <div class="api-entry">mono_signbit_double</div>
+
+    <div class="prototype">Prototype: mono_signbit_double</div>
+<p />
+
+</div> <a name="api:mono_signbit_float"></a>
+ <div class="api">
+    <div class="api-entry">mono_signbit_float</div>
+
+    <div class="prototype">Prototype: mono_signbit_float</div>
+<p />
+
+
+</div><h3>Disassembling Generated Code</h3>
+
+	<p />Routines used to debug the JIT-produced code.
+	
+ <a name="api:mono_disasm_code"></a>
+ <div class="api">
+    <div class="api-entry">mono_disasm_code</div>
+
+    <div class="prototype">Prototype: mono_disasm_code</div>
+<p />
+
+</div> <a name="api:mono_disasm_code_one"></a>
+ <div class="api">
+    <div class="api-entry">mono_disasm_code_one</div>
+
+    <div class="prototype">Prototype: mono_disasm_code_one</div>
+<p />
+
+</div> <a name="api:mono_disassemble_code"></a>
+ <div class="api">
+    <div class="api-entry">mono_disassemble_code</div>
+
+    <div class="prototype">void
+mono_disassemble_code (MonoCompile *cfg, guint8 *code, int size, char *id)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>cfg:</i></dt><dd> compilation context</dd><dt><i>code:</i></dt><dd> a pointer to the code</dd><dt><i>size:</i></dt><dd> the code size in bytes</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Disassemble to code to stdout.
+
+
+</div><h3>Walking the Stack</h3>
+
+ <a name="api:mono_walk_stack"></a>
+ <div class="api">
+    <div class="api-entry">mono_walk_stack</div>
+
+    <div class="prototype">void
+mono_walk_stack (MonoDomain *domain, MonoJitTlsData *jit_tls, MonoContext *start_ctx, MonoStackFrameWalk func, gpointer user_data)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>domain:</i></dt><dd> starting appdomain</dd><dt><i>jit_tls:</i></dt><dd> JIT data for the thread</dd><dt><i>start_ctx:</i></dt><dd> starting state of the stack frame</dd><dt><i>func:</i></dt><dd> callback to call for each stack frame</dd><dt><i>user_data:</i></dt><dd> data passed to the callback</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This function walks the stack of a thread, starting from the state
+	 represented by jit_tls and start_ctx. For each frame the callback
+	 function is called with the relevant info. The walk ends when no more
+	 managed stack frames are found or when the callback returns a TRUE value.
+	 Note that the function can be used to walk the stack of a thread 
+	 different from the current.
+
+</div> <a name="api:mono_stack_walk_no_il"></a>
+ <div class="api">
+    <div class="api-entry">mono_stack_walk_no_il</div>
+
+    <div class="prototype">Prototype: mono_stack_walk_no_il</div>
+<p />
+
+
+</div><h3>Others</h3>
+
+ <a name="api:mono_escape_uri_string"></a>
+ <div class="api">
+    <div class="api-entry">mono_escape_uri_string</div>
+
+    <div class="prototype">Prototype: mono_escape_uri_string</div>
+<p />
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-vm.html b/docs/deploy/mono-api-vm.html
new file mode 100644
index 0000000..d1dc657
--- /dev/null
+++ b/docs/deploy/mono-api-vm.html
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-vm.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+</body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/deploy/mono-api-wapi.html b/docs/deploy/mono-api-wapi.html
new file mode 100644
index 0000000..c9af1b1
--- /dev/null
+++ b/docs/deploy/mono-api-wapi.html
@@ -0,0 +1,1553 @@
+<?xml version="1.0" encoding="utf-8"?><span>
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+   <title>mono-api-wapi.html</title>
+   <style type="text/css">
+
+
+   h3 { 
+       font-size: 18px;
+       padding-bottom: 4pt;
+       border-bottom: 2px solid #dddddd;
+   }
+       
+   .api {
+     border: 1px solid;
+     padding: 10pt;
+     margin: 10pt;
+   } 
+
+   .api-entry { 
+       border-bottom: none;
+       font-size: 18px;
+   }
+
+   .prototype {
+     border: 1px solid;
+     background-color: #f2f2f2;
+     padding: 5pt;
+     margin-top: 5pt;
+     margin-bottom: 5pt;  
+   } 
+
+   .header {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+    
+   .code {
+     border: 1px solid;
+     padding: 0 0 5pt 5pt;
+     margin: 10pt;
+     white-space: pre;
+       font-family: monospace;
+   }
+   
+
+</style>
+</head>
+<body>
+<h2>Windows Compatibility API</h2>
+
+	<p />Mono implements a small subset of the Win32 API for some
+	file system interaction, I/O, thread and process operations.
+
+	<p />On Windows, Mono uses directly the services provided by the
+	operating system.   On other operating system it uses its own
+	implementation (referred to as the "io-layer" or "wapi"). 
+	
+ <a name="api:GetThreadContext"></a>
+ <div class="api">
+    <div class="api-entry">GetThreadContext</div>
+
+    <div class="prototype">Prototype: GetThreadContext</div>
+<p />
+
+</div> <a name="api:DeleteCriticalSection"></a>
+ <div class="api">
+    <div class="api-entry">DeleteCriticalSection</div>
+
+    <div class="prototype">void DeleteCriticalSection(WapiCriticalSection *section)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>section:</i></dt><dd> The critical section to delete.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Releases all resources owned by critical section <i>section</i>.
+
+</div> <a name="api:EnterCriticalSection"></a>
+ <div class="api">
+    <div class="api-entry">EnterCriticalSection</div>
+
+    <div class="prototype">Prototype: EnterCriticalSection</div>
+<p />
+
+</div> <a name="api:InitializeCriticalSection"></a>
+ <div class="api">
+    <div class="api-entry">InitializeCriticalSection</div>
+
+    <div class="prototype">void InitializeCriticalSection(WapiCriticalSection *section)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>section:</i></dt><dd> The critical section to initialise</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Initialises a critical section.
+
+</div> <a name="api:InitializeCriticalSectionAndSpinCount"></a>
+ <div class="api">
+    <div class="api-entry">InitializeCriticalSectionAndSpinCount</div>
+
+    <div class="prototype">gboolean InitializeCriticalSectionAndSpinCount(WapiCriticalSection *section,
+					       guint32 spincount G_GNUC_UNUSED)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>section:</i></dt><dd> The critical section to initialise.</dd><dt><i>spincount:</i></dt><dd> The spin count for this critical section.  Not</dd></blockquote>
+<b>Remarks</b>
+<p />	 currently used. 
+	
+	 Initialises a critical section and sets the spin count.  This
+	 implementation just calls InitializeCriticalSection().
+	
+	 Return value: %TRUE on success, %FALSE otherwise.  (%FALSE never
+	 happens).
+
+</div> <a name="api:LeaveCriticalSection"></a>
+ <div class="api">
+    <div class="api-entry">LeaveCriticalSection</div>
+
+    <div class="prototype">Prototype: LeaveCriticalSection</div>
+<p />
+
+</div> <a name="api:SetCriticalSectionSpinCount"></a>
+ <div class="api">
+    <div class="api-entry">SetCriticalSectionSpinCount</div>
+
+    <div class="prototype">guint32 SetCriticalSectionSpinCount(WapiCriticalSection *section G_GNUC_UNUSED, guint32 spincount G_GNUC_UNUSED)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>section:</i></dt><dd> The critical section to set</dd><dt><i>spincount:</i></dt><dd> The new spin count for this critical section.  Not</dd></blockquote>
+<b>Remarks</b>
+<p />	 currently used. 
+	
+	 Sets the spin count for the critical section <i>section</i>.  The spin
+	 count is currently ignored, and set to zero.
+	
+	 Return value: The previous spin count.  (Currently always zero).
+
+</div> <a name="api:TryEnterCriticalSection"></a>
+ <div class="api">
+    <div class="api-entry">TryEnterCriticalSection</div>
+
+    <div class="prototype">gboolean TryEnterCriticalSection(WapiCriticalSection *section)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>section:</i></dt><dd> The critical section to try and enter</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Attempts to enter a critical section without blocking.  If
+	 successful the calling thread takes ownership of the critical
+	 section.
+	
+	 A thread can recursively call EnterCriticalSection() and
+	 TryEnterCriticalSection(), but must call LeaveCriticalSection() an
+	 equal number of times.
+	
+	 Return value: %TRUE if the thread successfully locked the critical
+	 section, %FALSE otherwise.
+
+</div> <a name="api:errno_to_WSA"></a>
+ <div class="api">
+    <div class="api-entry">errno_to_WSA</div>
+
+    <div class="prototype">Prototype: errno_to_WSA</div>
+<p />
+
+</div> <a name="api:GetLastError"></a>
+ <div class="api">
+    <div class="api-entry">GetLastError</div>
+
+    <div class="prototype">guint32 GetLastError(void)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+	 Retrieves the last error that occurred in the calling thread.
+	
+	 Return value: The error code for the last error that happened on
+	 the calling thread.
+
+</div> <a name="api:SetLastError"></a>
+ <div class="api">
+    <div class="api-entry">SetLastError</div>
+
+    <div class="prototype">void SetLastError(guint32 code)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>code:</i></dt><dd> The error code.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Sets the error code in the calling thread.
+
+</div> <a name="api:CreateEvent"></a>
+ <div class="api">
+    <div class="api-entry">CreateEvent</div>
+
+    <div class="prototype">gpointer CreateEvent(WapiSecurityAttributes *security G_GNUC_UNUSED,
+		     gboolean manual, gboolean initial,
+		     const gunichar2 *name G_GNUC_UNUSED)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>security:</i></dt><dd> Ignored for now.</dd><dt><i>manual:</i></dt><dd> Specifies whether the new event handle has manual or auto</dd></blockquote>
+<b>Remarks</b>
+<p />	 reset behaviour. 
+	 <i>initial</i>: Specifies whether the new event handle is initially
+	 signalled or not.
+	 <i>name</i>:Pointer to a string specifying the name of this name, or
+	 %NULL.  Currently ignored.
+	
+	 Creates a new event handle.
+	
+	 An event handle is signalled with SetEvent().  If the new handle is
+	 a manual reset event handle, it remains signalled until it is reset
+	 with ResetEvent().  An auto reset event remains signalled until a
+	 single thread has waited for it, at which time the event handle is
+	 automatically reset to unsignalled.
+	
+	 Return value: A new handle, or %NULL on error.
+
+</div> <a name="api:PulseEvent"></a>
+ <div class="api">
+    <div class="api-entry">PulseEvent</div>
+
+    <div class="prototype">gboolean PulseEvent(gpointer handle)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>handle:</i></dt><dd> The event handle.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Sets the event handle <i>handle</i> to the signalled state, and then
+	 resets it to unsignalled after informing any waiting threads.
+	
+	 If <i>handle</i> is a manual reset event, all waiting threads that can be
+	 released immediately are released.  <i>handle</i> is then reset.  If
+	 <i>handle</i> is an auto reset event, one waiting thread is released even
+	 if multiple threads are waiting.
+	
+	 Return value: %TRUE on success, %FALSE otherwise.  (Currently only
+	 ever returns %TRUE).
+
+</div> <a name="api:ResetEvent"></a>
+ <div class="api">
+    <div class="api-entry">ResetEvent</div>
+
+    <div class="prototype">gboolean ResetEvent(gpointer handle)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>handle:</i></dt><dd> The event handle.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Resets the event handle <i>handle</i> to the unsignalled state.
+	
+	 Return value: %TRUE on success, %FALSE otherwise.  (Currently only
+	 ever returns %TRUE).
+
+</div> <a name="api:SetEvent"></a>
+ <div class="api">
+    <div class="api-entry">SetEvent</div>
+
+    <div class="prototype">gboolean SetEvent(gpointer handle)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>handle:</i></dt><dd> The event handle</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Sets the event handle <i>handle</i> to the signalled state.
+	
+	 If <i>handle</i> is a manual reset event, it remains signalled until it
+	 is reset with ResetEvent().  An auto reset event remains signalled
+	 until a single thread has waited for it, at which time <i>handle</i> is
+	 automatically reset to unsignalled.
+	
+	 Return value: %TRUE on success, %FALSE otherwise.  (Currently only
+	 ever returns %TRUE).
+
+</div> <a name="api:CloseHandle"></a>
+ <div class="api">
+    <div class="api-entry">CloseHandle</div>
+
+    <div class="prototype">gboolean CloseHandle(gpointer handle)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>handle:</i></dt><dd> The handle to release</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Closes and invalidates <i>handle</i>, releasing any resources it
+	 consumes.  When the last handle to a temporary or non-persistent
+	 object is closed, that object can be deleted.  Closing the same
+	 handle twice is an error.
+	
+	 Return value: %TRUE on success, %FALSE otherwise.
+
+</div> <a name="api:CopyFile"></a>
+ <div class="api">
+    <div class="api-entry">CopyFile</div>
+
+    <div class="prototype">gboolean CopyFile (const gunichar2 *name, const gunichar2 *dest_name,
+		   gboolean fail_if_exists)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>name:</i></dt><dd> a pointer to a NULL-terminated unicode string, that names</dd></blockquote>
+<b>Remarks</b>
+<p />	 the file to be copied. 
+	 <i>dest_name</i>: a pointer to a NULL-terminated unicode string, that is the
+	 new name for the file.
+	 <i>fail_if_exists</i>: if TRUE and dest_name exists, the copy will fail.
+	
+	 Copies file <i>name</i> to <i>dest_name</i>
+	
+	 Return value: %TRUE on success, %FALSE otherwise.
+
+</div> <a name="api:CreateDirectory"></a>
+ <div class="api">
+    <div class="api-entry">CreateDirectory</div>
+
+    <div class="prototype">gboolean CreateDirectory (const gunichar2 *name,
+			  WapiSecurityAttributes *security)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>name:</i></dt><dd> a pointer to a NULL-terminated unicode string, that names</dd></blockquote>
+<b>Remarks</b>
+<p />	 the directory to be created. 
+	 <i>security</i>: ignored for now
+	
+	 Creates directory <i>name</i>
+	
+	 Return value: %TRUE on success, %FALSE otherwise.
+
+</div> <a name="api:CreateFile"></a>
+ <div class="api">
+    <div class="api-entry">CreateFile</div>
+
+    <div class="prototype">gpointer CreateFile(const gunichar2 *name, guint32 fileaccess,
+		    guint32 sharemode, WapiSecurityAttributes *security,
+		    guint32 createmode, guint32 attrs,
+		    gpointer template G_GNUC_UNUSED)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>name:</i></dt><dd> a pointer to a NULL-terminated unicode string, that names</dd></blockquote>
+<b>Remarks</b>
+<p />	 the file or other object to create. 
+	 <i>fileaccess</i>: specifies the file access mode
+	 <i>sharemode</i>: whether the file should be shared.  This parameter is
+	 currently ignored.
+	 <i>security</i>: Ignored for now.
+	 <i>createmode</i>: specifies whether to create a new file, whether to
+	 overwrite an existing file, whether to truncate the file, etc.
+	 <i>attrs</i>: specifies file attributes and flags.  On win32 attributes
+	 are characteristics of the file, not the handle, and are ignored
+	 when an existing file is opened.  Flags give the library hints on
+	 how to process a file to optimise performance.
+	 <i>template</i>: the handle of an open %GENERIC_READ file that specifies
+	 attributes to apply to a newly created file, ignoring <i>attrs</i>.
+	 Normally this parameter is NULL.  This parameter is ignored when an
+	 existing file is opened.
+	
+	 Creates a new file handle.  This only applies to normal files:
+	 pipes are handled by CreatePipe(), and console handles are created
+	 with GetStdHandle().
+	
+	 Return value: the new handle, or %INVALID_HANDLE_VALUE on error.
+
+</div> <a name="api:CreatePipe"></a>
+ <div class="api">
+    <div class="api-entry">CreatePipe</div>
+
+    <div class="prototype">Prototype: CreatePipe</div>
+<p />
+
+</div> <a name="api:DeleteFile"></a>
+ <div class="api">
+    <div class="api-entry">DeleteFile</div>
+
+    <div class="prototype">gboolean DeleteFile(const gunichar2 *name)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>name:</i></dt><dd> a pointer to a NULL-terminated unicode string, that names</dd></blockquote>
+<b>Remarks</b>
+<p />	 the file to be deleted. 
+	
+	 Deletes file <i>name</i>.
+	
+	 Return value: %TRUE on success, %FALSE otherwise.
+
+</div> <a name="api:FileTimeToSystemTime"></a>
+ <div class="api">
+    <div class="api-entry">FileTimeToSystemTime</div>
+
+    <div class="prototype">gboolean FileTimeToSystemTime(const WapiFileTime *file_time,
+			      WapiSystemTime *system_time)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>file_time:</i></dt><dd> Points to a %WapiFileTime structure that contains the</dd></blockquote>
+<b>Remarks</b>
+<p />	 number of ticks to convert. 
+	 <i>system_time</i>: Points to a %WapiSystemTime structure to receive the
+	 broken-out time.
+	
+	 Converts a tick count into broken-out time values.
+	
+	 Return value: %TRUE on success, %FALSE otherwise.
+
+</div> <a name="api:FindClose"></a>
+ <div class="api">
+    <div class="api-entry">FindClose</div>
+
+    <div class="prototype">gboolean FindClose (gpointer handle)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>wapi_handle:</i></dt><dd> the find handle to close.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Closes find handle <i>wapi_handle</i>
+	
+	 Return value: %TRUE on success, %FALSE otherwise.
+
+</div> <a name="api:FindFirstFile"></a>
+ <div class="api">
+    <div class="api-entry">FindFirstFile</div>
+
+    <div class="prototype">Prototype: FindFirstFile</div>
+<p />
+
+</div> <a name="api:FindNextFile"></a>
+ <div class="api">
+    <div class="api-entry">FindNextFile</div>
+
+    <div class="prototype">Prototype: FindNextFile</div>
+<p />
+
+</div> <a name="api:FlushFileBuffers"></a>
+ <div class="api">
+    <div class="api-entry">FlushFileBuffers</div>
+
+    <div class="prototype">gboolean FlushFileBuffers(gpointer handle)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>handle:</i></dt><dd> Handle to open file.  The handle must have</dd></blockquote>
+<b>Remarks</b>
+<p />	 %GENERIC_WRITE access. 
+	
+	 Flushes buffers of the file and causes all unwritten data to
+	 be written.
+	
+	 Return value: %TRUE on success, %FALSE otherwise.
+
+</div> <a name="api:GetCurrentDirectory"></a>
+ <div class="api">
+    <div class="api-entry">GetCurrentDirectory</div>
+
+    <div class="prototype">extern guint32 GetCurrentDirectory (guint32 length, gunichar2 *buffer)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>length:</i></dt><dd> size of the buffer</dd><dt><i>buffer:</i></dt><dd> pointer to buffer that recieves path</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Retrieves the current directory for the current process.
+	
+	 Return value: number of characters in buffer on success, zero on failure
+
+</div> <a name="api:GetFileAttributes"></a>
+ <div class="api">
+    <div class="api-entry">GetFileAttributes</div>
+
+    <div class="prototype">guint32 GetFileAttributes (const gunichar2 *name)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>name:</i></dt><dd> a pointer to a NULL-terminated unicode filename.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Gets the attributes for <i>name</i>;
+	
+	 Return value: %INVALID_FILE_ATTRIBUTES on failure
+
+</div> <a name="api:GetFileAttributesEx"></a>
+ <div class="api">
+    <div class="api-entry">GetFileAttributesEx</div>
+
+    <div class="prototype">gboolean GetFileAttributesEx (const gunichar2 *name, WapiGetFileExInfoLevels level, gpointer info)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>name:</i></dt><dd> a pointer to a NULL-terminated unicode filename.</dd><dt><i>level:</i></dt><dd> must be GetFileExInfoStandard</dd><dt><i>info:</i></dt><dd> pointer to a WapiFileAttributesData structure</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Gets attributes, size and filetimes for <i>name</i>;
+	
+	 Return value: %TRUE on success, %FALSE on failure
+
+</div> <a name="api:GetFileSize"></a>
+ <div class="api">
+    <div class="api-entry">GetFileSize</div>
+
+    <div class="prototype">guint32 GetFileSize(gpointer handle, guint32 *highsize)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>handle:</i></dt><dd> The file handle to query.  The handle must have</dd></blockquote>
+<b>Remarks</b>
+<p />	 %GENERIC_READ or %GENERIC_WRITE access. 
+	 <i>highsize</i>: If non-%NULL, the high 32 bits of the file size are
+	 stored here.
+	
+	 Retrieves the size of the file <i>handle</i>.
+	
+	 If the library is compiled without large file support, <i>highsize</i>
+	 has its value set to zero on a successful return.
+	
+	 Return value: On success, the low 32 bits of the file size.  If
+	 <i>highsize</i> is non-%NULL then the high 32 bits of the file size are
+	 stored here.  On failure %INVALID_FILE_SIZE is returned.
+
+</div> <a name="api:GetFileTime"></a>
+ <div class="api">
+    <div class="api-entry">GetFileTime</div>
+
+    <div class="prototype">gboolean GetFileTime(gpointer handle, WapiFileTime *create_time,
+		     WapiFileTime *last_access, WapiFileTime *last_write)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>handle:</i></dt><dd> The file handle to query.  The handle must have</dd></blockquote>
+<b>Remarks</b>
+<p />	 %GENERIC_READ access. 
+	 <i>create_time</i>: Points to a %WapiFileTime structure to receive the
+	 number of ticks since the epoch that file was created.  May be
+	 %NULL.
+	 <i>last_access</i>: Points to a %WapiFileTime structure to receive the
+	 number of ticks since the epoch when file was last accessed.  May be
+	 %NULL.
+	 <i>last_write</i>: Points to a %WapiFileTime structure to receive the
+	 number of ticks since the epoch when file was last written to.  May
+	 be %NULL.
+	
+	 Finds the number of ticks since the epoch that the file referenced
+	 by <i>handle</i> was created, last accessed and last modified.  A tick is
+	 a 100 nanosecond interval.  The epoch is Midnight, January 1 1601
+	 GMT.
+	
+	 Create time isn't recorded on POSIX file systems or reported by
+	 stat(2), so that time is guessed by returning the oldest of the
+	 other times.
+	
+	 Return value: %TRUE on success, %FALSE otherwise.
+
+</div> <a name="api:GetFileType"></a>
+ <div class="api">
+    <div class="api-entry">GetFileType</div>
+
+    <div class="prototype">WapiFileType GetFileType(gpointer handle)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>handle:</i></dt><dd> The file handle to test.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Finds the type of file <i>handle</i>.
+	
+	 Return value: %FILE_TYPE_UNKNOWN - the type of the file <i>handle</i> is
+	 unknown.  %FILE_TYPE_DISK - <i>handle</i> is a disk file.
+	 %FILE_TYPE_CHAR - <i>handle</i> is a character device, such as a console.
+	 %FILE_TYPE_PIPE - <i>handle</i> is a named or anonymous pipe.
+
+</div> <a name="api:GetLogicalDriveStrings"></a>
+ <div class="api">
+    <div class="api-entry">GetLogicalDriveStrings</div>
+
+    <div class="prototype">Prototype: GetLogicalDriveStrings</div>
+<p />
+
+</div> <a name="api:GetStdHandle"></a>
+ <div class="api">
+    <div class="api-entry">GetStdHandle</div>
+
+    <div class="prototype">
+static mono_mutex_t stdhandle_mutex = MONO_MUTEX_INITIALIZER;
+
+gpointer GetStdHandle(WapiStdHandle stdhandle)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>stdhandle:</i></dt><dd> specifies the file descriptor</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Returns a handle for stdin, stdout, or stderr.  Always returns the
+	 same handle for the same <i>stdhandle</i>.
+	
+	 Return value: the handle, or %INVALID_HANDLE_VALUE on error
+
+</div> <a name="api:GetTempPath"></a>
+ <div class="api">
+    <div class="api-entry">GetTempPath</div>
+
+    <div class="prototype">Prototype: GetTempPath</div>
+<p />
+
+</div> <a name="api:LockFile"></a>
+ <div class="api">
+    <div class="api-entry">LockFile</div>
+
+    <div class="prototype">Prototype: LockFile</div>
+<p />
+
+</div> <a name="api:MoveFile"></a>
+ <div class="api">
+    <div class="api-entry">MoveFile</div>
+
+    <div class="prototype">gboolean MoveFile (const gunichar2 *name, const gunichar2 *dest_name)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>name:</i></dt><dd> a pointer to a NULL-terminated unicode string, that names</dd></blockquote>
+<b>Remarks</b>
+<p />	 the file to be moved. 
+	 <i>dest_name</i>: a pointer to a NULL-terminated unicode string, that is the
+	 new name for the file.
+	
+	 Renames file <i>name</i> to <i>dest_name</i>.
+	 MoveFile sets ERROR_ALREADY_EXISTS if the destination exists, except
+	 when it is the same file as the source.  In that case it silently succeeds.
+	
+	 Return value: %TRUE on success, %FALSE otherwise.
+
+</div> <a name="api:ReadFile"></a>
+ <div class="api">
+    <div class="api-entry">ReadFile</div>
+
+    <div class="prototype">gboolean ReadFile(gpointer handle, gpointer buffer, guint32 numbytes,
+		  guint32 *bytesread, WapiOverlapped *overlapped)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>handle:</i></dt><dd> The file handle to read from.  The handle must have</dd></blockquote>
+<b>Remarks</b>
+<p />	 %GENERIC_READ access. 
+	 <i>buffer</i>: The buffer to store read data in
+	 <i>numbytes</i>: The maximum number of bytes to read
+	 <i>bytesread</i>: The actual number of bytes read is stored here.  This
+	 value can be zero if the handle is positioned at the end of the
+	 file.
+	 <i>overlapped</i>: points to a required %WapiOverlapped structure if
+	 <i>handle</i> has the %FILE_FLAG_OVERLAPPED option set, should be NULL
+	 otherwise.
+	
+	 If <i>handle</i> does not have the %FILE_FLAG_OVERLAPPED option set, this
+	 function reads up to <i>numbytes</i> bytes from the file from the current
+	 file position, and stores them in <i>buffer</i>.  If there are not enough
+	 bytes left in the file, just the amount available will be read.
+	 The actual number of bytes read is stored in <i>bytesread</i>.
+	
+	 If <i>handle</i> has the %FILE_FLAG_OVERLAPPED option set, the current
+	 file position is ignored and the read position is taken from data
+	 in the <i>overlapped</i> structure.
+	
+	 Return value: %TRUE if the read succeeds (even if no bytes were
+	 read due to an attempt to read past the end of the file), %FALSE on
+	 error.
+
+</div> <a name="api:RemoveDirectory"></a>
+ <div class="api">
+    <div class="api-entry">RemoveDirectory</div>
+
+    <div class="prototype">gboolean RemoveDirectory (const gunichar2 *name)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>name:</i></dt><dd> a pointer to a NULL-terminated unicode string, that names</dd></blockquote>
+<b>Remarks</b>
+<p />	 the directory to be removed. 
+	
+	 Removes directory <i>name</i>
+	
+	 Return value: %TRUE on success, %FALSE otherwise.
+
+</div> <a name="api:SetCurrentDirectory"></a>
+ <div class="api">
+    <div class="api-entry">SetCurrentDirectory</div>
+
+    <div class="prototype">extern gboolean SetCurrentDirectory (const gunichar2 *path)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>path:</i></dt><dd> path to new directory</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Changes the directory path for the current process.
+	
+	 Return value: %TRUE on success, %FALSE on failure.
+
+</div> <a name="api:SetEndOfFile"></a>
+ <div class="api">
+    <div class="api-entry">SetEndOfFile</div>
+
+    <div class="prototype">gboolean SetEndOfFile(gpointer handle)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>handle:</i></dt><dd> The file handle to set.  The handle must have</dd></blockquote>
+<b>Remarks</b>
+<p />	 %GENERIC_WRITE access. 
+	
+	 Moves the end-of-file position to the current position of the file
+	 pointer.  This function is used to truncate or extend a file.
+	
+	 Return value: %TRUE on success, %FALSE otherwise.
+
+</div> <a name="api:SetFileAttributes"></a>
+ <div class="api">
+    <div class="api-entry">SetFileAttributes</div>
+
+    <div class="prototype">extern gboolean SetFileAttributes (const gunichar2 *name, guint32 attrs)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>name:</i></dt><dd> name of file</dd><dt><i>attrs:</i></dt><dd> attributes to set</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Changes the attributes on a named file.
+	
+	 Return value: %TRUE on success, %FALSE on failure.
+
+</div> <a name="api:SetFilePointer"></a>
+ <div class="api">
+    <div class="api-entry">SetFilePointer</div>
+
+    <div class="prototype">guint32 SetFilePointer(gpointer handle, gint32 movedistance,
+		       gint32 *highmovedistance, WapiSeekMethod method)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>handle:</i></dt><dd> The file handle to set.  The handle must have</dd></blockquote>
+<b>Remarks</b>
+<p />	 %GENERIC_READ or %GENERIC_WRITE access. 
+	 <i>movedistance</i>: Low 32 bits of a signed value that specifies the
+	 number of bytes to move the file pointer.
+	 <i>highmovedistance</i>: Pointer to the high 32 bits of a signed value
+	 that specifies the number of bytes to move the file pointer, or
+	 %NULL.
+	 <i>method</i>: The starting point for the file pointer move.
+	
+	 Sets the file pointer of an open file.
+	
+	 The distance to move the file pointer is calculated from
+	 <i>movedistance</i> and <i>highmovedistance</i>: If <i>highmovedistance</i> is %NULL,
+	 <i>movedistance</i> is the 32-bit signed value; otherwise, <i>movedistance</i>
+	 is the low 32 bits and <i>highmovedistance</i> a pointer to the high 32
+	 bits of a 64 bit signed value.  A positive distance moves the file
+	 pointer forward from the position specified by <i>method</i>; a negative
+	 distance moves the file pointer backward.
+	
+	 If the library is compiled without large file support,
+	 <i>highmovedistance</i> is ignored and its value is set to zero on a
+	 successful return.
+	
+	 Return value: On success, the low 32 bits of the new file pointer.
+	 If <i>highmovedistance</i> is not %NULL, the high 32 bits of the new file
+	 pointer are stored there.  On failure, %INVALID_SET_FILE_POINTER.
+
+</div> <a name="api:SetFileTime"></a>
+ <div class="api">
+    <div class="api-entry">SetFileTime</div>
+
+    <div class="prototype">gboolean SetFileTime(gpointer handle, const WapiFileTime *create_time,
+		     const WapiFileTime *last_access,
+		     const WapiFileTime *last_write)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>handle:</i></dt><dd> The file handle to set.  The handle must have</dd></blockquote>
+<b>Remarks</b>
+<p />	 %GENERIC_WRITE access. 
+	 <i>create_time</i>: Points to a %WapiFileTime structure that contains the
+	 number of ticks since the epoch that the file was created.  May be
+	 %NULL.
+	 <i>last_access</i>: Points to a %WapiFileTime structure that contains the
+	 number of ticks since the epoch when the file was last accessed.
+	 May be %NULL.
+	 <i>last_write</i>: Points to a %WapiFileTime structure that contains the
+	 number of ticks since the epoch when the file was last written to.
+	 May be %NULL.
+	
+	 Sets the number of ticks since the epoch that the file referenced
+	 by <i>handle</i> was created, last accessed or last modified.  A tick is
+	 a 100 nanosecond interval.  The epoch is Midnight, January 1 1601
+	 GMT.
+	
+	 Create time isn't recorded on POSIX file systems, and is ignored.
+	
+	 Return value: %TRUE on success, %FALSE otherwise.
+
+</div> <a name="api:UnlockFile"></a>
+ <div class="api">
+    <div class="api-entry">UnlockFile</div>
+
+    <div class="prototype">Prototype: UnlockFile</div>
+<p />
+
+</div> <a name="api:WriteFile"></a>
+ <div class="api">
+    <div class="api-entry">WriteFile</div>
+
+    <div class="prototype">gboolean WriteFile(gpointer handle, gconstpointer buffer, guint32 numbytes,
+		   guint32 *byteswritten, WapiOverlapped *overlapped)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>handle:</i></dt><dd> The file handle to write to.  The handle must have</dd></blockquote>
+<b>Remarks</b>
+<p />	 %GENERIC_WRITE access. 
+	 <i>buffer</i>: The buffer to read data from.
+	 <i>numbytes</i>: The maximum number of bytes to write.
+	 <i>byteswritten</i>: The actual number of bytes written is stored here.
+	 If the handle is positioned at the file end, the length of the file
+	 is extended.  This parameter may be %NULL.
+	 <i>overlapped</i>: points to a required %WapiOverlapped structure if
+	 <i>handle</i> has the %FILE_FLAG_OVERLAPPED option set, should be NULL
+	 otherwise.
+	
+	 If <i>handle</i> does not have the %FILE_FLAG_OVERLAPPED option set, this
+	 function writes up to <i>numbytes</i> bytes from <i>buffer</i> to the file at
+	 the current file position.  If <i>handle</i> is positioned at the end of
+	 the file, the file is extended.  The actual number of bytes written
+	 is stored in <i>byteswritten</i>.
+	
+	 If <i>handle</i> has the %FILE_FLAG_OVERLAPPED option set, the current
+	 file position is ignored and the write position is taken from data
+	 in the <i>overlapped</i> structure.
+	
+	 Return value: %TRUE if the write succeeds, %FALSE on error.
+
+</div> <a name="api:mono_once"></a>
+ <div class="api">
+    <div class="api-entry">mono_once</div>
+
+    <div class="prototype">Prototype: mono_once</div>
+<p />
+
+</div> <a name="api:CreateMutex"></a>
+ <div class="api">
+    <div class="api-entry">CreateMutex</div>
+
+    <div class="prototype">gpointer CreateMutex(WapiSecurityAttributes *security G_GNUC_UNUSED, gboolean owned,
+			const gunichar2 *name)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>security:</i></dt><dd> Ignored for now.</dd><dt><i>owned:</i></dt><dd> If %TRUE, the mutex is created with the calling thread</dd></blockquote>
+<b>Remarks</b>
+<p />	 already owning the mutex. 
+	 <i>name</i>:Pointer to a string specifying the name of this mutex, or
+	 %NULL.
+	
+	 Creates a new mutex handle.  A mutex is signalled when no thread
+	 owns it.  A thread acquires ownership of the mutex by waiting for
+	 it with WaitForSingleObject() or WaitForMultipleObjects().  A
+	 thread relinquishes ownership with ReleaseMutex().
+	
+	 A thread that owns a mutex can specify the same mutex in repeated
+	 wait function calls without blocking.  The thread must call
+	 ReleaseMutex() an equal number of times to release the mutex.
+	
+	 Return value: A new handle, or %NULL on error.
+
+</div> <a name="api:ReleaseMutex"></a>
+ <div class="api">
+    <div class="api-entry">ReleaseMutex</div>
+
+    <div class="prototype">gboolean ReleaseMutex(gpointer handle)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>handle:</i></dt><dd> The mutex handle.</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Releases ownership if the mutex handle <i>handle</i>.
+	
+	 Return value: %TRUE on success, %FALSE otherwise.  This function
+	 fails if the calling thread does not own the mutex <i>handle</i>.
+
+</div> <a name="api:CreateProcess"></a>
+ <div class="api">
+    <div class="api-entry">CreateProcess</div>
+
+    <div class="prototype">Prototype: CreateProcess</div>
+<p />
+
+</div> <a name="api:EnumProcesses"></a>
+ <div class="api">
+    <div class="api-entry">EnumProcesses</div>
+
+    <div class="prototype">Prototype: EnumProcesses</div>
+<p />
+
+</div> <a name="api:EnumProcessModules"></a>
+ <div class="api">
+    <div class="api-entry">EnumProcessModules</div>
+
+    <div class="prototype">Prototype: EnumProcessModules</div>
+<p />
+
+</div> <a name="api:GetCurrentProcess"></a>
+ <div class="api">
+    <div class="api-entry">GetCurrentProcess</div>
+
+    <div class="prototype">Prototype: GetCurrentProcess</div>
+<p />
+
+</div> <a name="api:GetCurrentProcessId"></a>
+ <div class="api">
+    <div class="api-entry">GetCurrentProcessId</div>
+
+    <div class="prototype">Prototype: GetCurrentProcessId</div>
+<p />
+
+</div> <a name="api:GetExitCodeProcess"></a>
+ <div class="api">
+    <div class="api-entry">GetExitCodeProcess</div>
+
+    <div class="prototype">Prototype: GetExitCodeProcess</div>
+<p />
+
+</div> <a name="api:GetModuleBaseName"></a>
+ <div class="api">
+    <div class="api-entry">GetModuleBaseName</div>
+
+    <div class="prototype">Prototype: GetModuleBaseName</div>
+<p />
+
+</div> <a name="api:GetProcessTimes"></a>
+ <div class="api">
+    <div class="api-entry">GetProcessTimes</div>
+
+    <div class="prototype">Prototype: GetProcessTimes</div>
+<p />
+
+</div> <a name="api:GetProcessWorkingSetSize"></a>
+ <div class="api">
+    <div class="api-entry">GetProcessWorkingSetSize</div>
+
+    <div class="prototype">Prototype: GetProcessWorkingSetSize</div>
+<p />
+
+</div> <a name="api:OpenProcess"></a>
+ <div class="api">
+    <div class="api-entry">OpenProcess</div>
+
+    <div class="prototype">Prototype: OpenProcess</div>
+<p />
+
+</div> <a name="api:SetProcessWorkingSetSize"></a>
+ <div class="api">
+    <div class="api-entry">SetProcessWorkingSetSize</div>
+
+    <div class="prototype">Prototype: SetProcessWorkingSetSize</div>
+<p />
+
+</div> <a name="api:TerminateProcess"></a>
+ <div class="api">
+    <div class="api-entry">TerminateProcess</div>
+
+    <div class="prototype">Prototype: TerminateProcess</div>
+<p />
+
+</div> <a name="api:ImpersonateLoggedOnUser"></a>
+ <div class="api">
+    <div class="api-entry">ImpersonateLoggedOnUser</div>
+
+    <div class="prototype">Prototype: ImpersonateLoggedOnUser</div>
+<p />
+
+</div> <a name="api:RevertToSelf"></a>
+ <div class="api">
+    <div class="api-entry">RevertToSelf</div>
+
+    <div class="prototype">Prototype: RevertToSelf</div>
+<p />
+
+</div> <a name="api:CreateSemaphore"></a>
+ <div class="api">
+    <div class="api-entry">CreateSemaphore</div>
+
+    <div class="prototype">gpointer CreateSemaphore(WapiSecurityAttributes *security G_GNUC_UNUSED, gint32 initial, gint32 max, const gunichar2 *name)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>security:</i></dt><dd> Ignored for now.</dd><dt><i>initial:</i></dt><dd> The initial count for the semaphore.  The value must be</dd></blockquote>
+<b>Remarks</b>
+<p />	 greater than or equal to zero, and less than or equal to <i>max</i>. 
+	 <i>max</i>: The maximum count for this semaphore.  The value must be
+	 greater than zero.
+	 <i>name</i>: Pointer to a string specifying the name of this semaphore,
+	 or %NULL.  Currently ignored.
+	
+	 Creates a new semaphore handle.  A semaphore is signalled when its
+	 count is greater than zero, and unsignalled otherwise.  The count
+	 is decreased by one whenever a wait function releases a thread that
+	 was waiting for the semaphore.  The count is increased by calling
+	 ReleaseSemaphore().
+	
+	 Return value: a new handle, or NULL
+
+</div> <a name="api:ReleaseSemaphore"></a>
+ <div class="api">
+    <div class="api-entry">ReleaseSemaphore</div>
+
+    <div class="prototype">gboolean ReleaseSemaphore(gpointer handle, gint32 count, gint32 *prevcount)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>handle:</i></dt><dd> The semaphore handle to release.</dd><dt><i>count:</i></dt><dd> The amount by which the semaphore's count should be</dd></blockquote>
+<b>Remarks</b>
+<p />	 increased. 
+	 <i>prevcount</i>: Pointer to a location to store the previous count of
+	 the semaphore, or %NULL.
+	
+	 Increases the count of semaphore <i>handle</i> by <i>count</i>.
+	
+	 Return value: %TRUE on success, %FALSE otherwise.
+
+</div> <a name="api:closesocket"></a>
+ <div class="api">
+    <div class="api-entry">closesocket</div>
+
+    <div class="prototype">Prototype: closesocket</div>
+<p />
+
+</div> <a name="api:ioctlsocket"></a>
+ <div class="api">
+    <div class="api-entry">ioctlsocket</div>
+
+    <div class="prototype">Prototype: ioctlsocket</div>
+<p />
+
+</div> <a name="api:WSACleanup"></a>
+ <div class="api">
+    <div class="api-entry">WSACleanup</div>
+
+    <div class="prototype">Prototype: WSACleanup</div>
+<p />
+
+</div> <a name="api:WSAGetLastError"></a>
+ <div class="api">
+    <div class="api-entry">WSAGetLastError</div>
+
+    <div class="prototype">Prototype: WSAGetLastError</div>
+<p />
+
+</div> <a name="api:WSAIoctl"></a>
+ <div class="api">
+    <div class="api-entry">WSAIoctl</div>
+
+    <div class="prototype">Prototype: WSAIoctl</div>
+<p />
+
+</div> <a name="api:WSASetLastError"></a>
+ <div class="api">
+    <div class="api-entry">WSASetLastError</div>
+
+    <div class="prototype">Prototype: WSASetLastError</div>
+<p />
+
+</div> <a name="api:WSAStartup"></a>
+ <div class="api">
+    <div class="api-entry">WSAStartup</div>
+
+    <div class="prototype">Prototype: WSAStartup</div>
+<p />
+
+</div> <a name="api:GetSystemInfo"></a>
+ <div class="api">
+    <div class="api-entry">GetSystemInfo</div>
+
+    <div class="prototype">Prototype: GetSystemInfo</div>
+<p />
+
+</div> <a name="api:BindIoCompletionCallback"></a>
+ <div class="api">
+    <div class="api-entry">BindIoCompletionCallback</div>
+
+    <div class="prototype">Prototype: BindIoCompletionCallback</div>
+<p />
+
+</div> <a name="api:CreateThread"></a>
+ <div class="api">
+    <div class="api-entry">CreateThread</div>
+
+    <div class="prototype">gpointer CreateThread(WapiSecurityAttributes *security G_GNUC_UNUSED, guint32 stacksize,
+		      WapiThreadStart start, gpointer param, guint32 create,
+		      gsize *tid) 
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>security:</i></dt><dd> Ignored for now.</dd><dt><i>stacksize:</i></dt><dd> the size in bytes of the new thread's stack. Use 0 to</dd></blockquote>
+<b>Remarks</b>
+<p />	 default to the normal stack size. (Ignored for now). 
+	 <i>start</i>: The function that the new thread should start with
+	 <i>param</i>: The parameter to give to <i>start</i>.
+	 <i>create</i>: If 0, the new thread is ready to run immediately.  If
+	 %CREATE_SUSPENDED, the new thread will be in the suspended state,
+	 requiring a ResumeThread() call to continue running.
+	 <i>tid</i>: If non-NULL, the ID of the new thread is stored here.  NB
+	 this is defined as a DWORD (ie 32bit) in the MS API, but we need to
+	 cope with 64 bit IDs for s390x and amd64.
+	
+	 Creates a new threading handle.
+	
+	 Return value: a new handle, or NULL
+
+</div> <a name="api:ExitThread"></a>
+ <div class="api">
+    <div class="api-entry">ExitThread</div>
+
+    <div class="prototype">void ExitThread(guint32 exitcode)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>exitcode:</i></dt><dd> Sets the thread's exit code, which can be read from</dd></blockquote>
+<b>Remarks</b>
+<p />	 another thread with GetExitCodeThread(). 
+	
+	 Terminates the calling thread.  A thread can also exit by returning
+	 from its start function. When the last thread in a process
+	 terminates, the process itself terminates.
+
+</div> <a name="api:GetCurrentThread"></a>
+ <div class="api">
+    <div class="api-entry">GetCurrentThread</div>
+
+    <div class="prototype">gpointer GetCurrentThread(void)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+	 Looks up the handle associated with the current thread.  Under
+	 Windows this is a pseudohandle, and must be duplicated with
+	 DuplicateHandle() for some operations.
+	
+	 Return value: The current thread handle, or %NULL on failure.
+	 (Unknown whether Windows has a possible failure here.  It may be
+	 necessary to implement the pseudohandle-constant behaviour).
+
+</div> <a name="api:GetCurrentThreadId"></a>
+ <div class="api">
+    <div class="api-entry">GetCurrentThreadId</div>
+
+    <div class="prototype">gsize GetCurrentThreadId(void)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+	 Looks up the thread ID of the current thread.  This ID can be
+	 passed to OpenThread() to create a new handle on this thread.
+	
+	 Return value: the thread ID.  NB this is defined as DWORD (ie 32
+	 bit) in the MS API, but we need to cope with 64 bit IDs for s390x
+	 and amd64.  This doesn't really break the API, it just embraces and
+	 extends it on 64bit platforms :)
+
+</div> <a name="api:GetExitCodeThread"></a>
+ <div class="api">
+    <div class="api-entry">GetExitCodeThread</div>
+
+    <div class="prototype">gboolean GetExitCodeThread(gpointer handle, guint32 *exitcode)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>handle:</i></dt><dd> The thread handle to query</dd><dt><i>exitcode:</i></dt><dd> The thread <i>handle</i> exit code is stored here</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Finds the exit code of <i>handle</i>, and stores it in <i>exitcode</i>.  If the
+	 thread <i>handle</i> is still running, the value stored is %STILL_ACTIVE.
+	
+	 Return value: %TRUE, or %FALSE on error.
+
+</div> <a name="api:OpenThread"></a>
+ <div class="api">
+    <div class="api-entry">OpenThread</div>
+
+    <div class="prototype">Prototype: OpenThread</div>
+<p />
+
+</div> <a name="api:QueueUserAPC"></a>
+ <div class="api">
+    <div class="api-entry">QueueUserAPC</div>
+
+    <div class="prototype">Prototype: QueueUserAPC</div>
+<p />
+
+</div> <a name="api:ResumeThread"></a>
+ <div class="api">
+    <div class="api-entry">ResumeThread</div>
+
+    <div class="prototype">guint32 ResumeThread(gpointer handle)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>handle:</i></dt><dd> the thread handle to resume</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Decrements the suspend count of thread <i>handle</i>. A thread can only
+	 run if its suspend count is zero.
+	
+	 Return value: the previous suspend count, or 0xFFFFFFFF on error.
+
+</div> <a name="api:Sleep"></a>
+ <div class="api">
+    <div class="api-entry">Sleep</div>
+
+    <div class="prototype">Prototype: Sleep</div>
+<p />
+
+</div> <a name="api:SleepEx"></a>
+ <div class="api">
+    <div class="api-entry">SleepEx</div>
+
+    <div class="prototype">guint32 SleepEx(guint32 ms, gboolean alertable)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>ms:</i></dt><dd> The time in milliseconds to suspend for</dd><dt><i>alertable:</i></dt><dd> if TRUE, the wait can be interrupted by an APC call</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Suspends execution of the current thread for <i>ms</i> milliseconds.  A
+	 value of zero causes the thread to relinquish its time slice.  A
+	 value of %INFINITE causes an infinite delay.
+
+</div> <a name="api:SuspendThread"></a>
+ <div class="api">
+    <div class="api-entry">SuspendThread</div>
+
+    <div class="prototype">guint32 SuspendThread(gpointer handle)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>handle:</i></dt><dd> the thread handle to suspend</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Increments the suspend count of thread <i>handle</i>. A thread can only
+	 run if its suspend count is zero.
+	
+	 Return value: the previous suspend count, or 0xFFFFFFFF on error.
+
+</div> <a name="api:TlsAlloc"></a>
+ <div class="api">
+    <div class="api-entry">TlsAlloc</div>
+
+    <div class="prototype">guint32 TlsAlloc(void)
+
+</div>
+<p />
+<b>Remarks</b>
+<p />	 
+	 Allocates a Thread Local Storage (TLS) index.  Any thread in the
+	 same process can use this index to store and retrieve values that
+	 are local to that thread.
+	
+	 Return value: The index value, or %TLS_OUT_OF_INDEXES if no index
+	 is available.
+
+</div> <a name="api:TlsFree"></a>
+ <div class="api">
+    <div class="api-entry">TlsFree</div>
+
+    <div class="prototype">gboolean TlsFree(guint32 idx)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>idx:</i></dt><dd> The TLS index to free</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Releases a TLS index, making it available for reuse.  This call
+	 will delete any TLS data stored under index <i>idx</i> in all threads.
+	
+	 Return value: %TRUE on success, %FALSE otherwise.
+
+</div> <a name="api:TlsGetValue"></a>
+ <div class="api">
+    <div class="api-entry">TlsGetValue</div>
+
+    <div class="prototype">gpointer TlsGetValue(guint32 idx)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>idx:</i></dt><dd> The TLS index to retrieve</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Retrieves the TLS data stored under index <i>idx</i>.
+	
+	 Return value: The value stored in the TLS index <i>idx</i> in the current
+	 thread, or %NULL on error.  As %NULL can be a valid return value,
+	 in this case GetLastError() returns %ERROR_SUCCESS.
+
+</div> <a name="api:TlsSetValue"></a>
+ <div class="api">
+    <div class="api-entry">TlsSetValue</div>
+
+    <div class="prototype">gboolean TlsSetValue(guint32 idx, gpointer value)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>idx:</i></dt><dd> The TLS index to store</dd><dt><i>value:</i></dt><dd> The value to store under index <i>idx</i></dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 Stores <i>value</i> at TLS index <i>idx</i>.
+	
+	 Return value: %TRUE on success, %FALSE otherwise.
+
+</div> <a name="api:GetTickCount"></a>
+ <div class="api">
+    <div class="api-entry">GetTickCount</div>
+
+    <div class="prototype">Prototype: GetTickCount</div>
+<p />
+
+</div> <a name="api:QueryPerformanceCounter"></a>
+ <div class="api">
+    <div class="api-entry">QueryPerformanceCounter</div>
+
+    <div class="prototype">Prototype: QueryPerformanceCounter</div>
+<p />
+
+</div> <a name="api:QueryPerformanceFrequency"></a>
+ <div class="api">
+    <div class="api-entry">QueryPerformanceFrequency</div>
+
+    <div class="prototype">Prototype: QueryPerformanceFrequency</div>
+<p />
+
+</div> <a name="api:SignalObjectAndWait"></a>
+ <div class="api">
+    <div class="api-entry">SignalObjectAndWait</div>
+
+    <div class="prototype">guint32 SignalObjectAndWait(gpointer signal_handle, gpointer wait,
+			    guint32 timeout, gboolean alertable)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>signal_handle:</i></dt><dd> An object to signal</dd><dt><i>wait:</i></dt><dd> An object to wait for</dd><dt><i>timeout:</i></dt><dd> The maximum time in milliseconds to wait for</dd><dt><i>alertable:</i></dt><dd> Specifies whether the function returnes when the system</dd></blockquote>
+<b>Remarks</b>
+<p />	 queues an I/O completion routine or an APC for the calling thread. 
+	
+	 Atomically signals <i>signal</i> and waits for <i>wait</i> to become signalled,
+	 or <i>timeout</i> ms elapses.  If <i>timeout</i> is zero, the object's state is
+	 tested and the function returns immediately.  If <i>timeout</i> is
+	 %INFINITE, the function waits forever.
+	
+	 <i>signal</i> can be a semaphore, mutex or event object.
+	
+	 If <i>alertable</i> is %TRUE and the system queues an I/O completion
+	 routine or an APC for the calling thread, the function returns and
+	 the thread calls the completion routine or APC function.  If
+	 %FALSE, the function does not return, and the thread does not call
+	 the completion routine or APC function.  A completion routine is
+	 queued when the ReadFileEx() or WriteFileEx() function in which it
+	 was specified has completed.  The calling thread is the thread that
+	 initiated the read or write operation.  An APC is queued when
+	 QueueUserAPC() is called.  Currently completion routines and APC
+	 functions are not supported.
+	
+	 Return value: %WAIT_ABANDONED - <i>wait</i> is a mutex that was not
+	 released by the owning thread when it exited.  Ownershop of the
+	 mutex object is granted to the calling thread and the mutex is set
+	 to nonsignalled.  %WAIT_IO_COMPLETION - the wait was ended by one
+	 or more user-mode asynchronous procedure calls queued to the
+	 thread.  %WAIT_OBJECT_0 - The state of <i>wait</i> is signalled.
+	 %WAIT_TIMEOUT - The <i>timeout</i> interval elapsed and <i>wait</i>'s state is
+	 still not signalled.  %WAIT_FAILED - an error occurred.
+
+</div> <a name="api:WaitForMultipleObjects"></a>
+ <div class="api">
+    <div class="api-entry">WaitForMultipleObjects</div>
+
+    <div class="prototype">Prototype: WaitForMultipleObjects</div>
+<p />
+
+</div> <a name="api:WaitForMultipleObjectsEx"></a>
+ <div class="api">
+    <div class="api-entry">WaitForMultipleObjectsEx</div>
+
+    <div class="prototype">guint32 WaitForMultipleObjectsEx(guint32 numobjects, gpointer *handles,
+				 gboolean waitall, guint32 timeout,
+				 gboolean alertable)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>numobjects:</i></dt><dd> The number of objects in <i>handles</i>. The maximum allowed</dd></blockquote>
+<b>Remarks</b>
+<p />	 is %MAXIMUM_WAIT_OBJECTS. 
+	 <i>handles</i>: An array of object handles.  Duplicates are not allowed.
+	 <i>waitall</i>: If %TRUE, this function waits until all of the handles
+	 are signalled.  If %FALSE, this function returns when any object is
+	 signalled.
+	 <i>timeout</i>: The maximum time in milliseconds to wait for.
+	 <i>alertable</i>: if TRUE, the wait can be interrupted by an APC call
+	
+<p />
+	 This function returns when either one or more of <i>handles</i> is
+	 signalled, or <i>timeout</i> ms elapses.  If <i>timeout</i> is zero, the state
+	 of each item of <i>handles</i> is tested and the function returns
+	 immediately.  If <i>timeout</i> is %INFINITE, the function waits forever.
+	
+	 Return value: %WAIT_OBJECT_0 to %WAIT_OBJECT_0 + <i>numobjects</i> - 1 -
+	 if <i>waitall</i> is %TRUE, indicates that all objects are signalled.  If
+	 <i>waitall</i> is %FALSE, the return value minus %WAIT_OBJECT_0 indicates
+	 the first index into <i>handles</i> of the objects that are signalled.
+	 %WAIT_ABANDONED_0 to %WAIT_ABANDONED_0 + <i>numobjects</i> - 1 - if
+	 <i>waitall</i> is %TRUE, indicates that all objects are signalled, and at
+	 least one object is an abandoned mutex object (See
+	 WaitForSingleObject() for a description of abandoned mutexes.)  If
+	 <i>waitall</i> is %FALSE, the return value minus %WAIT_ABANDONED_0
+	 indicates the first index into <i>handles</i> of an abandoned mutex.
+	 %WAIT_TIMEOUT - The <i>timeout</i> interval elapsed and no objects in
+	 <i>handles</i> are signalled.  %WAIT_FAILED - an error occurred.
+	 %WAIT_IO_COMPLETION - the wait was ended by an APC.
+
+</div> <a name="api:WaitForSingleObject"></a>
+ <div class="api">
+    <div class="api-entry">WaitForSingleObject</div>
+
+    <div class="prototype">Prototype: WaitForSingleObject</div>
+<p />
+
+</div> <a name="api:WaitForSingleObjectEx"></a>
+ <div class="api">
+    <div class="api-entry">WaitForSingleObjectEx</div>
+
+    <div class="prototype">guint32 WaitForSingleObjectEx(gpointer handle, guint32 timeout,
+			      gboolean alertable)
+
+</div>
+<p />
+<b>Parameters</b>
+<blockquote><dt><i>handle:</i></dt><dd> an object to wait for</dd><dt><i>timeout:</i></dt><dd> the maximum time in milliseconds to wait for</dd><dt><i>alertable:</i></dt><dd> if TRUE, the wait can be interrupted by an APC call</dd></blockquote>
+<b>Remarks</b>
+<p />	 
+	 This function returns when either <i>handle</i> is signalled, or <i>timeout</i>
+	 ms elapses.  If <i>timeout</i> is zero, the object's state is tested and
+	 the function returns immediately.  If <i>timeout</i> is %INFINITE, the
+	 function waits forever.
+	
+	 Return value: %WAIT_ABANDONED - <i>handle</i> is a mutex that was not
+	 released by the owning thread when it exited.  Ownership of the
+	 mutex object is granted to the calling thread and the mutex is set
+	 to nonsignalled.  %WAIT_OBJECT_0 - The state of <i>handle</i> is
+	 signalled.  %WAIT_TIMEOUT - The <i>timeout</i> interval elapsed and
+	 <i>handle</i>'s state is still not signalled.  %WAIT_FAILED - an error
+	 occurred. %WAIT_IO_COMPLETION - the wait was ended by an APC.
+
+</div> <a name="api:OpenEvent"></a>
+ <div class="api">
+    <div class="api-entry">OpenEvent</div>
+
+    <div class="prototype">Prototype: OpenEvent</div>
+<p />
+
+</div> <a name="api:OpenMutex"></a>
+ <div class="api">
+    <div class="api-entry">OpenMutex</div>
+
+    <div class="prototype">Prototype: OpenMutex</div>
+<p />
+
+</div> <a name="api:GetProcessId"></a>
+ <div class="api">
+    <div class="api-entry">GetProcessId</div>
+
+    <div class="prototype">Prototype: GetProcessId</div>
+<p />
+
+</div> <a name="api:ShellExecuteEx"></a>
+ <div class="api">
+    <div class="api-entry">ShellExecuteEx</div>
+
+    <div class="prototype">Prototype: ShellExecuteEx</div>
+<p />
+
+</div></body>
+</html>
+</span>
\ No newline at end of file
diff --git a/docs/docs.make b/docs/docs.make
index 50a001f..7129bca 100644
--- a/docs/docs.make
+++ b/docs/docs.make
@@ -10,6 +10,9 @@ ASSEMBLED_DOCS = \
 convert.exe: convert.cs AgilityPack.dll
 	$(CSCOMPILE) -out:$@ $< -r:AgilityPack.dll
 
+AgilityPack.dll:
+	$(CSCOMPILE) -target:library -out:$@ HtmlAgilityPack/*.cs
+
 monoapi.zip: monoapi.tree
 	@test -f $@ || { rm -f $< && $(MAKE) $<; }
 monoapi.tree: toc.xml docs.make
diff --git a/ikvm-native/Makefile.in b/ikvm-native/Makefile.in
index a8ef783..5fb95e8 100644
--- a/ikvm-native/Makefile.in
+++ b/ikvm-native/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -47,14 +49,29 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(libdir)"
-libLTLIBRARIES_INSTALL = $(INSTALL)
 LTLIBRARIES = $(lib_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 libikvm_native_la_DEPENDENCIES = $(am__DEPENDENCIES_1)
@@ -66,6 +83,7 @@ libikvm_native_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -167,6 +185,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -270,14 +289,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  ikvm-native/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  ikvm-native/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ikvm-native/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu ikvm-native/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -295,23 +314,28 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+	list2=; for p in $$list; do \
 	  if test -f $$p; then \
-	    f=$(am__strip_dir) \
-	    echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
-	    $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
+	    list2="$$list2 $$p"; \
 	  else :; fi; \
-	done
+	done; \
+	test -z "$$list2" || { \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+	}
 
 uninstall-libLTLIBRARIES:
 	@$(NORMAL_UNINSTALL)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  p=$(am__strip_dir) \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
 	done
 
 clean-libLTLIBRARIES:
@@ -336,21 +360,21 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
@@ -366,14 +390,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -381,29 +405,34 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -424,13 +453,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -461,6 +494,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -482,6 +516,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -490,18 +526,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am: install-libLTLIBRARIES
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -540,6 +586,7 @@ uninstall-am: uninstall-libLTLIBRARIES
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags uninstall uninstall-am uninstall-libLTLIBRARIES
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/install-sh b/install-sh
index a5897de..6781b98 100755
--- a/install-sh
+++ b/install-sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2006-12-25.00
+scriptversion=2009-04-28.21; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -515,5 +515,6 @@ done
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
 # End:
diff --git a/libgc/Makefile.in b/libgc/Makefile.in
index 7ad4e95..e52844d 100644
--- a/libgc/Makefile.in
+++ b/libgc/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -30,8 +31,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -60,6 +62,7 @@ am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
  configure.lineno config.status.lineno
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1)
@@ -109,6 +112,7 @@ libmonogc_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 DEFAULT_INCLUDES = -I. at am__isrc@
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)
 LTCPPASCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -133,6 +137,9 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 	ps-recursive uninstall-recursive
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+	distdir dist dist-all distcheck
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
@@ -140,9 +147,34 @@ DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
 am__remove_distdir = \
-  { test ! -d $(distdir) \
-    || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
-         && rm -fr $(distdir); }; }
+  { test ! -d "$(distdir)" \
+    || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
+         && rm -fr "$(distdir)"; }; }
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
 DIST_ARCHIVES = $(distdir).tar.gz
 GZIP_ENV = --best
 distuninstallcheck_listfiles = find . -type f -print
@@ -211,6 +243,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 RANLIB = @RANLIB@
@@ -414,15 +447,15 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
-	      cd $(srcdir) && $(AUTOMAKE) --foreign  \
+	      echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \
+	      $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \
 		&& exit 0; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign  Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -438,9 +471,10 @@ $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENC
 	$(SHELL) ./config.status --recheck
 
 $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
-	cd $(srcdir) && $(AUTOCONF)
+	$(am__cd) $(srcdir) && $(AUTOCONF)
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
-	cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+	$(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
+$(am__aclocal_m4_deps):
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
@@ -498,42 +532,42 @@ distclean-compile:
 
 .S.o:
 @am__fastdepCCAS_TRUE@	$(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCCAS_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCCAS_FALSE@	$(CPPASCOMPILE) -c -o $@ $<
 
 .S.obj:
 @am__fastdepCCAS_TRUE@	$(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCCAS_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCCAS_FALSE@	$(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .S.lo:
 @am__fastdepCCAS_TRUE@	$(LTCPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCCAS_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCCAS_FALSE@	$(LTCPPASCOMPILE) -c -o $@ $<
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
@@ -551,7 +585,7 @@ clean-libtool:
 	-rm -rf .libs _libs
 
 distclean-libtool:
-	-rm -f libtool
+	-rm -f libtool config.lt
 
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
@@ -577,7 +611,7 @@ $(RECURSIVE_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done; \
 	if test "$$dot_seen" = "no"; then \
@@ -611,16 +645,16 @@ $(RECURSIVE_CLEAN_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done && test -z "$$fail"
 tags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 	done
 ctags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
 	done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -628,14 +662,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
 	  include_option=--etags-include; \
@@ -647,7 +681,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test ! -f $$subdir/TAGS || \
-	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
@@ -656,36 +690,41 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
 	$(am__remove_distdir)
-	test -d $(distdir) || mkdir $(distdir)
+	test -d "$(distdir)" || mkdir "$(distdir)"
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	list='$(DISTFILES)'; \
@@ -701,38 +740,54 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
-	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test -d "$(distdir)/$$subdir" \
 	    || $(MKDIR_P) "$(distdir)/$$subdir" \
 	    || exit 1; \
-	    distdir=`$(am__cd) $(distdir) && pwd`; \
-	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
-	    (cd $$subdir && \
+	  fi; \
+	done
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+	    $(am__relativize); \
+	    new_distdir=$$reldir; \
+	    dir1=$$subdir; dir2="$(top_distdir)"; \
+	    $(am__relativize); \
+	    new_top_distdir=$$reldir; \
+	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+	    ($(am__cd) $$subdir && \
 	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$top_distdir" \
-	        distdir="$$distdir/$$subdir" \
+	        top_distdir="$$new_top_distdir" \
+	        distdir="$$new_distdir" \
 		am__remove_distdir=: \
 		am__skip_length_check=: \
+		am__skip_mode_fix=: \
 	        distdir) \
 	      || exit 1; \
 	  fi; \
 	done
-	-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
+	-test -n "$(am__skip_mode_fix)" \
+	|| find "$(distdir)" -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
 	  ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
 	  ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
 	  ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
-	|| chmod -R a+r $(distdir)
+	|| chmod -R a+r "$(distdir)"
 dist-gzip: distdir
 	tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
 	$(am__remove_distdir)
@@ -745,6 +800,10 @@ dist-lzma: distdir
 	tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
 	$(am__remove_distdir)
 
+dist-xz: distdir
+	tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
+	$(am__remove_distdir)
+
 dist-tarZ: distdir
 	tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
 	$(am__remove_distdir)
@@ -773,6 +832,8 @@ distcheck: dist
 	  bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
 	*.tar.lzma*) \
 	  unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
+	*.tar.xz*) \
+	  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
 	*.tar.Z*) \
 	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
 	*.shar.gz*) \
@@ -784,9 +845,11 @@ distcheck: dist
 	mkdir $(distdir)/_build
 	mkdir $(distdir)/_inst
 	chmod a-w $(distdir)
+	test -d $(distdir)/_build || exit 0; \
 	dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
 	  && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
-	  && cd $(distdir)/_build \
+	  && am__cwd=`pwd` \
+	  && $(am__cd) $(distdir)/_build \
 	  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
 	    $(DISTCHECK_CONFIGURE_FLAGS) \
 	  && $(MAKE) $(AM_MAKEFLAGS) \
@@ -808,13 +871,15 @@ distcheck: dist
 	  && rm -rf "$$dc_destdir" \
 	  && $(MAKE) $(AM_MAKEFLAGS) dist \
 	  && rm -rf $(DIST_ARCHIVES) \
-	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
+	  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
+	  && cd "$$am__cwd" \
+	  || exit 1
 	$(am__remove_distdir)
 	@(echo "$(distdir) archives ready for distribution: "; \
 	  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
 	  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
 distuninstallcheck:
-	@cd $(distuninstallcheck_dir) \
+	@$(am__cd) '$(distuninstallcheck_dir)' \
 	&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
 	   || { echo "ERROR: files left after uninstall:" ; \
 	        if test -n "$(DESTDIR)"; then \
@@ -856,6 +921,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -878,6 +944,8 @@ dvi-am:
 
 html: html-recursive
 
+html-am:
+
 info: info-recursive
 
 info-am:
@@ -886,18 +954,28 @@ install-data-am:
 
 install-dvi: install-dvi-recursive
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-recursive
 
+install-html-am:
+
 install-info: install-info-recursive
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-recursive
 
+install-pdf-am:
+
 install-ps: install-ps-recursive
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -922,25 +1000,25 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
-	install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+	install-am install-strip tags-recursive
 
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
 	all all-am am--refresh check check-am clean clean-generic \
 	clean-libtool clean-noinstLTLIBRARIES ctags ctags-recursive \
 	dist dist-all dist-bzip2 dist-gzip dist-lzma dist-shar \
-	dist-tarZ dist-zip distcheck distclean distclean-compile \
-	distclean-generic distclean-libtool distclean-tags \
-	distcleancheck distdir distuninstallcheck dvi dvi-am html \
-	html-am info info-am install install-am install-data \
-	install-data-am install-dvi install-dvi-am install-exec \
-	install-exec-am install-html install-html-am install-info \
-	install-info-am install-man install-pdf install-pdf-am \
-	install-ps install-ps-am install-strip installcheck \
-	installcheck-am installdirs installdirs-am maintainer-clean \
-	maintainer-clean-generic mostlyclean mostlyclean-compile \
-	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-	tags tags-recursive uninstall uninstall-am
+	dist-tarZ dist-xz dist-zip distcheck distclean \
+	distclean-compile distclean-generic distclean-libtool \
+	distclean-tags distcleancheck distdir distuninstallcheck dvi \
+	dvi-am html html-am info info-am install install-am \
+	install-data install-data-am install-dvi install-dvi-am \
+	install-exec install-exec-am install-html install-html-am \
+	install-info install-info-am install-man install-pdf \
+	install-pdf-am install-ps install-ps-am install-strip \
+	installcheck installcheck-am installdirs installdirs-am \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+	pdf pdf-am ps ps-am tags tags-recursive uninstall uninstall-am
 
 $(all_objs) : include/private/gcconfig.h include/private/gc_priv.h \
 include/private/gc_hdrs.h include/gc.h include/gc_gcj.h include/gc_mark.h
@@ -952,6 +1030,7 @@ include/private/gc_hdrs.h include/gc.h include/gc_gcj.h include/gc_mark.h
 # it will not remove dest if building fails
 .S.s:
 	if $(CPP) $< >$@ ; then :; else rm -f $@; fi
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/libgc/aclocal.m4 b/libgc/aclocal.m4
index 38e6698..536f985 100644
--- a/libgc/aclocal.m4
+++ b/libgc/aclocal.m4
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.10.1 -*- Autoconf -*-
+# generated automatically by aclocal 1.11 -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2005, 2006, 2007, 2008, 2009  Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -13,8 +13,8 @@
 
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(AC_AUTOCONF_VERSION, [2.63],,
-[m4_warning([this file was generated for autoconf 2.63.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.64],,
+[m4_warning([this file was generated for autoconf 2.64.
 You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically `autoreconf'.])])
@@ -2500,6 +2500,18 @@ linux* | k*bsd*-gnu)
   dynamic_linker='GNU/Linux ld.so'
   ;;
 
+netbsdelf*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='NetBSD ld.elf_so'
+  ;;
+
 netbsd*)
   version_type=sunos
   need_lib_prefix=no
@@ -3091,7 +3103,7 @@ linux* | k*bsd*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-netbsd*)
+netbsd* | netbsdelf*-gnu)
   if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
   else
@@ -3772,7 +3784,7 @@ m4_if([$1], [CXX], [
 	    ;;
 	esac
 	;;
-      netbsd*)
+      netbsd* | netbsdelf*-gnu)
 	;;
       *qnx* | *nto*)
         # QNX uses GNU C++, but need to define -shared option too, otherwise
@@ -4197,6 +4209,9 @@ m4_if([$1], [CXX], [
   cygwin* | mingw* | cegcc*)
     _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
   ;;
+  linux* | k*bsd*-gnu)
+    _LT_TAGVAR(link_all_deplibs, $1)=no
+  ;;
   *)
     _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
   ;;
@@ -4261,6 +4276,9 @@ dnl Note also adjust exclude_expsyms for C++ above.
   openbsd*)
     with_gnu_ld=no
     ;;
+  linux* | k*bsd*-gnu)
+    _LT_TAGVAR(link_all_deplibs, $1)=no
+    ;;
   esac
 
   _LT_TAGVAR(ld_shlibs, $1)=yes
@@ -4443,7 +4461,7 @@ _LT_EOF
       fi
       ;;
 
-    netbsd*)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
 	wlarc=
@@ -4618,6 +4636,7 @@ _LT_EOF
 	if test "$aix_use_runtimelinking" = yes; then
 	  shared_flag="$shared_flag "'${wl}-G'
 	fi
+	_LT_TAGVAR(link_all_deplibs, $1)=no
       else
 	# not using gcc
 	if test "$host_cpu" = ia64; then
@@ -4856,7 +4875,7 @@ _LT_EOF
       _LT_TAGVAR(link_all_deplibs, $1)=yes
       ;;
 
-    netbsd*)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
       else
@@ -7965,7 +7984,7 @@ m4_ifndef([_LT_AC_LANG_RC_CONFIG],	[AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
 m4_ifndef([AC_LIBTOOL_CONFIG],		[AC_DEFUN([AC_LIBTOOL_CONFIG])])
 m4_ifndef([_LT_AC_FILE_LTDLL_C],	[AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
 
-# Copyright (C) 2002, 2003, 2005, 2006, 2007  Free Software Foundation, Inc.
+# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -7977,10 +7996,10 @@ m4_ifndef([_LT_AC_FILE_LTDLL_C],	[AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.10'
+[am__api_version='1.11'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.10.1], [],
+m4_if([$1], [1.11], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -7994,12 +8013,12 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # AM_SET_CURRENT_AUTOMAKE_VERSION
 # -------------------------------
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
-# This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
+# This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.10.1])dnl
+[AM_AUTOMAKE_VERSION([1.11])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-_AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)])
+_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # Figure out how to run the assembler.                      -*- Autoconf -*-
 
@@ -8078,14 +8097,14 @@ am_aux_dir=`cd $ac_aux_dir && pwd`
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006
+# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 8
+# serial 9
 
 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
 # -------------------------------------
@@ -8098,6 +8117,7 @@ AC_SUBST([$1_TRUE])dnl
 AC_SUBST([$1_FALSE])dnl
 _AM_SUBST_NOTMAKE([$1_TRUE])dnl
 _AM_SUBST_NOTMAKE([$1_FALSE])dnl
+m4_define([_AM_COND_VALUE_$1], [$2])dnl
 if $2; then
   $1_TRUE=
   $1_FALSE='#'
@@ -8111,14 +8131,14 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 9
+# serial 10
 
 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
@@ -8175,6 +8195,16 @@ AC_CACHE_CHECK([dependency style of $depcc],
   if test "$am_compiler_list" = ""; then
      am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
   fi
+  am__universal=false
+  m4_case([$1], [CC],
+    [case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac],
+    [CXX],
+    [case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac])
+
   for depmode in $am_compiler_list; do
     # Setup a source with many dependencies, because some compilers
     # like to wrap large dependency lists on column 80 (with \), and
@@ -8192,7 +8222,17 @@ AC_CACHE_CHECK([dependency style of $depcc],
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
     case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
     nosideeffect)
       # after this tag, mechanisms are not by side-effect, so they'll
       # only be used when explicitly requested
@@ -8202,19 +8242,23 @@ AC_CACHE_CHECK([dependency style of $depcc],
 	break
       fi
       ;;
+    msvisualcpp | msvcmsys)
+      # This compiler won't grok `-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
     none) break ;;
     esac
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.
     if depmode=$depmode \
-       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       source=sub/conftest.c object=$am__obj \
        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
          >/dev/null 2>conftest.err &&
        grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
       # icc doesn't choke on unknown options, it will just issue warnings
       # or remarks (even with -Werror).  So we grep stderr for any message
@@ -8271,57 +8315,68 @@ _AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-#serial 3
+#serial 5
 
 # _AM_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
 AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
-[for mf in $CONFIG_FILES; do
-  # Strip MF so we end up with the name of the file.
-  mf=`echo "$mf" | sed -e 's/:.*$//'`
-  # Check whether this is an Automake generated Makefile or not.
-  # We used to match only the files named `Makefile.in', but
-  # some people rename them; so instead we look at the file content.
-  # Grep'ing the first line is not enough: some people post-process
-  # each Makefile.in and add a new line on top of each file to say so.
-  # Grep'ing the whole file is not good either: AIX grep has a line
-  # limit of 2048, but all sed's we know have understand at least 4000.
-  if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-    dirpart=`AS_DIRNAME("$mf")`
-  else
-    continue
-  fi
-  # Extract the definition of DEPDIR, am__include, and am__quote
-  # from the Makefile without running `make'.
-  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-  test -z "$DEPDIR" && continue
-  am__include=`sed -n 's/^am__include = //p' < "$mf"`
-  test -z "am__include" && continue
-  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-  # When using ansi2knr, U may be empty or an underscore; expand it
-  U=`sed -n 's/^U = //p' < "$mf"`
-  # Find all dependency output files, they are included files with
-  # $(DEPDIR) in their names.  We invoke sed twice because it is the
-  # simplest approach to changing $(DEPDIR) to its actual value in the
-  # expansion.
-  for file in `sed -n "
-    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
-    # Make sure the directory exists.
-    test -f "$dirpart/$file" && continue
-    fdir=`AS_DIRNAME(["$file"])`
-    AS_MKDIR_P([$dirpart/$fdir])
-    # echo "creating $dirpart/$file"
-    echo '# dummy' > "$dirpart/$file"
+[{
+  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # are listed without --file.  Let's play safe and only enable the eval
+  # if we detect the quoting.
+  case $CONFIG_FILES in
+  *\'*) eval set x "$CONFIG_FILES" ;;
+  *)   set x $CONFIG_FILES ;;
+  esac
+  shift
+  for mf
+  do
+    # Strip MF so we end up with the name of the file.
+    mf=`echo "$mf" | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile or not.
+    # We used to match only the files named `Makefile.in', but
+    # some people rename them; so instead we look at the file content.
+    # Grep'ing the first line is not enough: some people post-process
+    # each Makefile.in and add a new line on top of each file to say so.
+    # Grep'ing the whole file is not good either: AIX grep has a line
+    # limit of 2048, but all sed's we know have understand at least 4000.
+    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+      dirpart=`AS_DIRNAME("$mf")`
+    else
+      continue
+    fi
+    # Extract the definition of DEPDIR, am__include, and am__quote
+    # from the Makefile without running `make'.
+    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+    test -z "$DEPDIR" && continue
+    am__include=`sed -n 's/^am__include = //p' < "$mf"`
+    test -z "am__include" && continue
+    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+    # When using ansi2knr, U may be empty or an underscore; expand it
+    U=`sed -n 's/^U = //p' < "$mf"`
+    # Find all dependency output files, they are included files with
+    # $(DEPDIR) in their names.  We invoke sed twice because it is the
+    # simplest approach to changing $(DEPDIR) to its actual value in the
+    # expansion.
+    for file in `sed -n "
+      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+      # Make sure the directory exists.
+      test -f "$dirpart/$file" && continue
+      fdir=`AS_DIRNAME(["$file"])`
+      AS_MKDIR_P([$dirpart/$fdir])
+      # echo "creating $dirpart/$file"
+      echo '# dummy' > "$dirpart/$file"
+    done
   done
-done
+}
 ])# _AM_OUTPUT_DEPENDENCY_COMMANDS
 
 
@@ -8341,13 +8396,13 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 # Do all the work for Automake.                             -*- Autoconf -*-
 
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2008 Free Software Foundation, Inc.
+# 2005, 2006, 2008, 2009 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 13
+# serial 16
 
 # This macro actually does too much.  Some checks are only needed if
 # your package does certain things.  But this isn't really a big deal.
@@ -8364,7 +8419,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
 # arguments mandatory, and then we can depend on a new Autoconf
 # release and drop the old call support.
 AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_PREREQ([2.60])dnl
+[AC_PREREQ([2.62])dnl
 dnl Autoconf wants to disallow AM_ names.  We explicitly allow
 dnl the ones we care about.
 m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
@@ -8415,8 +8470,8 @@ AM_MISSING_PROG(AUTOCONF, autoconf)
 AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
 AM_MISSING_PROG(AUTOHEADER, autoheader)
 AM_MISSING_PROG(MAKEINFO, makeinfo)
-AM_PROG_INSTALL_SH
-AM_PROG_INSTALL_STRIP
+AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
+AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl
 AC_REQUIRE([AM_PROG_MKDIR_P])dnl
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
@@ -8424,24 +8479,37 @@ AC_REQUIRE([AC_PROG_AWK])dnl
 AC_REQUIRE([AC_PROG_MAKE_SET])dnl
 AC_REQUIRE([AM_SET_LEADING_DOT])dnl
 _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
-              [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
-	      		     [_AM_PROG_TAR([v7])])])
+	      [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
+			     [_AM_PROG_TAR([v7])])])
 _AM_IF_OPTION([no-dependencies],,
 [AC_PROVIDE_IFELSE([AC_PROG_CC],
-                  [_AM_DEPENDENCIES(CC)],
-                  [define([AC_PROG_CC],
-                          defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
+		  [_AM_DEPENDENCIES(CC)],
+		  [define([AC_PROG_CC],
+			  defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_CXX],
-                  [_AM_DEPENDENCIES(CXX)],
-                  [define([AC_PROG_CXX],
-                          defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
+		  [_AM_DEPENDENCIES(CXX)],
+		  [define([AC_PROG_CXX],
+			  defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
 AC_PROVIDE_IFELSE([AC_PROG_OBJC],
-                  [_AM_DEPENDENCIES(OBJC)],
-                  [define([AC_PROG_OBJC],
-                          defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
+		  [_AM_DEPENDENCIES(OBJC)],
+		  [define([AC_PROG_OBJC],
+			  defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl
 ])
+_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl
+dnl The `parallel-tests' driver may need to know about EXEEXT, so add the
+dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This macro
+dnl is hooked onto _AC_COMPILER_EXEEXT early, see below.
+AC_CONFIG_COMMANDS_PRE(dnl
+[m4_provide_if([_AM_COMPILER_EXEEXT],
+  [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
 ])
 
+dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion.  Do not
+dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further
+dnl mangled by Autoconf and run in a shell conditional statement.
+m4_define([_AC_COMPILER_EXEEXT],
+m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])])
+
 
 # When config.status generates a header, we must update the stamp-h file.
 # This file resides in the same directory as the config header
@@ -8464,7 +8532,7 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2003, 2005, 2008  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -8475,7 +8543,14 @@ echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_co
 # Define $install_sh.
 AC_DEFUN([AM_PROG_INSTALL_SH],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
-install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
+if test x"${install_sh}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+  *)
+    install_sh="\${SHELL} $am_aux_dir/install-sh"
+  esac
+fi
 AC_SUBST(install_sh)])
 
 # Copyright (C) 2003, 2005  Free Software Foundation, Inc.
@@ -8502,27 +8577,38 @@ AC_SUBST([am__leading_dot])])
 # Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
 # From Jim Meyering
 
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
+# serial 5
 
+# AM_MAINTAINER_MODE([DEFAULT-MODE])
+# ----------------------------------
+# Control maintainer-specific portions of Makefiles.
+# Default is to disable them, unless `enable' is passed literally.
+# For symmetry, `disable' may be passed as well.  Anyway, the user
+# can override the default with the --enable/--disable switch.
 AC_DEFUN([AM_MAINTAINER_MODE],
-[AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
-  dnl maintainer-mode is disabled by default
-  AC_ARG_ENABLE(maintainer-mode,
-[  --enable-maintainer-mode  enable make rules and dependencies not useful
+[m4_case(m4_default([$1], [disable]),
+       [enable], [m4_define([am_maintainer_other], [disable])],
+       [disable], [m4_define([am_maintainer_other], [enable])],
+       [m4_define([am_maintainer_other], [enable])
+        m4_warn([syntax], [unexpected argument to AM@&t at _MAINTAINER_MODE: $1])])
+AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles])
+  dnl maintainer-mode's default is 'disable' unless 'enable' is passed
+  AC_ARG_ENABLE([maintainer-mode],
+[  --][am_maintainer_other][-maintainer-mode  am_maintainer_other make rules and dependencies not useful
 			  (and sometimes confusing) to the casual installer],
-      USE_MAINTAINER_MODE=$enableval,
-      USE_MAINTAINER_MODE=no)
+      [USE_MAINTAINER_MODE=$enableval],
+      [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes]))
   AC_MSG_RESULT([$USE_MAINTAINER_MODE])
-  AM_CONDITIONAL(MAINTAINER_MODE, [test $USE_MAINTAINER_MODE = yes])
+  AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes])
   MAINT=$MAINTAINER_MODE_TRUE
-  AC_SUBST(MAINT)dnl
+  AC_SUBST([MAINT])dnl
 ]
 )
 
@@ -8530,13 +8616,13 @@ AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
 
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005, 2009  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 3
+# serial 4
 
 # AM_MAKE_INCLUDE()
 # -----------------
@@ -8545,7 +8631,7 @@ AC_DEFUN([AM_MAKE_INCLUDE],
 [am_make=${MAKE-make}
 cat > confinc << 'END'
 am__doit:
-	@echo done
+	@echo this is the am__doit target
 .PHONY: am__doit
 END
 # If we don't find an include directive, just comment out the code.
@@ -8555,24 +8641,24 @@ am__quote=
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
-   am__include=include
-   am__quote=
-   _am_result=GNU
-fi
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+  am__include=include
+  am__quote=
+  _am_result=GNU
+  ;;
+esac
 # Now try BSD make style include.
 if test "$am__include" = "#"; then
    echo '.include "confinc"' > confmf
-   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
-      am__include=.include
-      am__quote="\""
-      _am_result=BSD
-   fi
+   case `$am_make -s -f confmf 2> /dev/null` in #(
+   *the\ am__doit\ target*)
+     am__include=.include
+     am__quote="\""
+     _am_result=BSD
+     ;;
+   esac
 fi
 AC_SUBST([am__include])
 AC_SUBST([am__quote])
@@ -8582,14 +8668,14 @@ rm -f confinc confmf
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005
+# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 5
+# serial 6
 
 # AM_MISSING_PROG(NAME, PROGRAM)
 # ------------------------------
@@ -8606,7 +8692,14 @@ AC_SUBST($1)])
 AC_DEFUN([AM_MISSING_HAS_RUN],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
 AC_REQUIRE_AUX_FILE([missing])dnl
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+if test x"${MISSING+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+  *)
+    MISSING="\${SHELL} $am_aux_dir/missing" ;;
+  esac
+fi
 # Use eval to expand $SHELL
 if eval "$MISSING --run true"; then
   am_missing_run="$MISSING --run "
@@ -8644,13 +8737,13 @@ esac
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003, 2005, 2008  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 3
+# serial 4
 
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
@@ -8667,7 +8760,7 @@ AC_DEFUN([_AM_SET_OPTION],
 # ----------------------------------
 # OPTIONS is a space-separated list of Automake options.
 AC_DEFUN([_AM_SET_OPTIONS],
-[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
+[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
 
 # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
 # -------------------------------------------
@@ -8677,14 +8770,14 @@ AC_DEFUN([_AM_IF_OPTION],
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
+# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008
 # Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
-# serial 4
+# serial 5
 
 # AM_SANITY_CHECK
 # ---------------
@@ -8693,16 +8786,29 @@ AC_DEFUN([AM_SANITY_CHECK],
 # Just in case
 sleep 1
 echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name.  Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+  *[[\\\"\#\$\&\'\`$am_lf]]*)
+    AC_MSG_ERROR([unsafe absolute working directory name]);;
+esac
+case $srcdir in
+  *[[\\\"\#\$\&\'\`$am_lf\ \	]]*)
+    AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);;
+esac
+
 # Do `set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
    if test "$[*]" = "X"; then
       # -L didn't work.
-      set X `ls -t $srcdir/configure conftest.file`
+      set X `ls -t "$srcdir/configure" conftest.file`
    fi
    rm -f conftest.file
    if test "$[*]" != "X $srcdir/configure conftest.file" \
@@ -8755,18 +8861,25 @@ fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006  Free Software Foundation, Inc.
+# Copyright (C) 2006, 2008  Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
 
+# serial 2
+
 # _AM_SUBST_NOTMAKE(VARIABLE)
 # ---------------------------
 # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
 # This macro is traced by Automake.
 AC_DEFUN([_AM_SUBST_NOTMAKE])
 
+# AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Public sister of _AM_SUBST_NOTMAKE.
+AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)])
+
 # Check how to create a tarball.                            -*- Autoconf -*-
 
 # Copyright (C) 2004, 2005  Free Software Foundation, Inc.
diff --git a/libgc/config.guess b/libgc/config.guess
index e6b5d5b..da83314 100755
--- a/libgc/config.guess
+++ b/libgc/config.guess
@@ -4,7 +4,7 @@
 #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
 #   Free Software Foundation, Inc.
 
-timestamp='2008-01-08'
+timestamp='2009-04-27'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -139,16 +139,6 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
 UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
-case "${UNAME_MACHINE}" in
-    i?86)
-	test -z "$VENDOR" && VENDOR=pc
-	;;
-    *)
-	test -z "$VENDOR" && VENDOR=unknown
-	;;
-esac
-test -f /etc/SuSE-release -o -f /.buildenv && VENDOR=suse
-
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
@@ -334,6 +324,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	case `/usr/bin/uname -p` in
 	    sparc) echo sparc-icl-nx7; exit ;;
 	esac ;;
+    s390x:SunOS:*:*)
+	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	exit ;;
     sun4H:SunOS:5.*:*)
 	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
@@ -341,7 +334,20 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
 	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
-	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+	eval $set_cc_for_build
+	SUN_ARCH="i386"
+	# If there is a compiler, see if it is configured for 64-bit objects.
+	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+	# This test works for both compilers.
+	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+		grep IS_64BIT_ARCH >/dev/null
+	    then
+		SUN_ARCH="x86_64"
+	    fi
+	fi
+	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
     sun4*:SunOS:6*:*)
 	# According to config.sub, this is the proper way to canonicalize
@@ -806,7 +812,7 @@ EOF
 	    x86)
 		echo i586-pc-interix${UNAME_RELEASE}
 		exit ;;
-	    EM64T | authenticamd)
+	    EM64T | authenticamd | genuineintel)
 		echo x86_64-unknown-interix${UNAME_RELEASE}
 		exit ;;
 	    IA64)
@@ -850,13 +856,13 @@ EOF
 	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
 	    | grep -q __ARM_EABI__
 	then
-	    echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+	    echo ${UNAME_MACHINE}-unknown-linux-gnu
 	else
-	    echo ${UNAME_MACHINE}-${VENDOR}-linux-gnueabi
+	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi
 	fi
 	exit ;;
     avr32*:Linux:*:*)
-	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     cris:Linux:*:*)
 	echo cris-axis-linux-gnu
@@ -865,16 +871,16 @@ EOF
 	echo crisv32-axis-linux-gnu
 	exit ;;
     frv:Linux:*:*)
-    	echo frv-${VENDOR}-linux-gnu
+    	echo frv-unknown-linux-gnu
 	exit ;;
     ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     m32r*:Linux:*:*)
-	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     mips:Linux:*:*)
 	eval $set_cc_for_build
@@ -897,7 +903,7 @@ EOF
 		s: ::g
 		p
 	    }'`"
-	test x"${CPU}" != x && { echo "${CPU}-${VENDOR}-linux-gnu"; exit; }
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
     mips64:Linux:*:*)
 	eval $set_cc_for_build
@@ -920,16 +926,16 @@ EOF
 		s: ::g
 		p
 	    }'`"
-	test x"${CPU}" != x && { echo "${CPU}-${VENDOR}-linux-gnu"; exit; }
+	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
 	;;
     or32:Linux:*:*)
-	echo or32-${VENDOR}-linux-gnu
+	echo or32-unknown-linux-gnu
 	exit ;;
     ppc:Linux:*:*)
-	echo powerpc-${VENDOR}-linux-gnu
+	echo powerpc-unknown-linux-gnu
 	exit ;;
     ppc64:Linux:*:*)
-	echo powerpc64-${VENDOR}-linux-gnu
+	echo powerpc64-unknown-linux-gnu
 	exit ;;
     alpha:Linux:*:*)
 	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
@@ -943,39 +949,42 @@ EOF
         esac
 	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
 	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu${LIBC}
+	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+	exit ;;
+    padre:Linux:*:*)
+	echo sparc-unknown-linux-gnu
 	exit ;;
     parisc:Linux:*:* | hppa:Linux:*:*)
 	# Look for CPU level
 	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-	  PA7*) echo hppa1.1-${VENDOR}-linux-gnu ;;
-	  PA8*) echo hppa2.0-${VENDOR}-linux-gnu ;;
-	  *)    echo hppa-${VENDOR}-linux-gnu ;;
+	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
+	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
+	  *)    echo hppa-unknown-linux-gnu ;;
 	esac
 	exit ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-${VENDOR}-linux-gnu
+	echo hppa64-unknown-linux-gnu
 	exit ;;
     s390:Linux:*:* | s390x:Linux:*:*)
 	echo ${UNAME_MACHINE}-ibm-linux
 	exit ;;
     sh64*:Linux:*:*)
-    	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     vax:Linux:*:*)
 	echo ${UNAME_MACHINE}-dec-linux-gnu
 	exit ;;
     x86_64:Linux:*:*)
-	echo x86_64-${VENDOR}-linux-gnu
+	echo x86_64-unknown-linux-gnu
 	exit ;;
     xtensa*:Linux:*:*)
-    	echo ${UNAME_MACHINE}-${VENDOR}-linux-gnu
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     i*86:Linux:*:*)
 	# The BFD linker knows what the default object file format is, so
@@ -990,18 +999,15 @@ EOF
 				    p'`
         case "$ld_supported_targets" in
 	  elf32-i386)
-		TENTATIVE="${UNAME_MACHINE}-${VENDOR}-linux-gnu"
+		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
 		;;
 	  a.out-i386-linux)
-		echo "${UNAME_MACHINE}-${VENDOR}-linux-gnuaout"
-		exit ;;
-	  coff-i386)
-		echo "${UNAME_MACHINE}-${VENDOR}-linux-gnucoff"
+		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
 		exit ;;
 	  "")
 		# Either a pre-BFD a.out linker (linux-gnuoldld) or
 		# one that does not give us useful --help.
-		echo "${UNAME_MACHINE}-${VENDOR}-linux-gnuoldld"
+		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
 		exit ;;
 	esac
 	# Determine whether the default compiler is a.out or elf
@@ -1035,7 +1041,7 @@ EOF
 		p
 	    }'`"
 	test x"${LIBC}" != x && {
-		echo "${UNAME_MACHINE}-${VENDOR}-linux-${LIBC}"
+		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
 		exit
 	}
 	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
@@ -1112,8 +1118,11 @@ EOF
     pc:*:*:*)
 	# Left here for compatibility:
         # uname -m prints for DJGPP always 'pc', but it prints nothing about
-        # the processor, so we play safe by assuming i386.
-	echo i386-pc-msdosdjgpp
+        # the processor, so we play safe by assuming i586.
+	# Note: whatever this is, it MUST be the same as what config.sub
+	# prints for the "djgpp" host, or else GDB configury will decide that
+	# this is a cross-build.
+	echo i586-pc-msdosdjgpp
         exit ;;
     Intel:Mach:3*:*)
 	echo i386-pc-mach3
@@ -1151,6 +1160,16 @@ EOF
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
         /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
           && { echo i486-ncr-sysv4; exit; } ;;
+    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
+	OS_REL='.3'
+	test -r /etc/.relid \
+	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
+	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
+	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
 	echo m68k-unknown-lynxos${UNAME_RELEASE}
 	exit ;;
@@ -1226,6 +1245,9 @@ EOF
     BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
 	echo i586-pc-beos
 	exit ;;
+    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
+	echo i586-pc-haiku
+	exit ;;
     SX-4:SUPER-UX:*:*)
 	echo sx4-nec-superux${UNAME_RELEASE}
 	exit ;;
@@ -1334,6 +1356,9 @@ EOF
     i*86:rdos:*:*)
 	echo ${UNAME_MACHINE}-pc-rdos
 	exit ;;
+    i*86:AROS:*:*)
+	echo ${UNAME_MACHINE}-pc-aros
+	exit ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
@@ -1494,9 +1519,9 @@ This script, last modified $timestamp, has failed to recognize
 the operating system you are using. It is advised that you
 download the most up to date version of the config scripts from
 
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
 and
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
 
 If the version you run ($0) is already up to date, please
 send the following data and any information you think might be
diff --git a/libgc/config.sub b/libgc/config.sub
index 6759825..a39437d 100755
--- a/libgc/config.sub
+++ b/libgc/config.sub
@@ -4,7 +4,7 @@
 #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
 #   Free Software Foundation, Inc.
 
-timestamp='2008-01-16'
+timestamp='2009-04-17'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -122,6 +122,7 @@ maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
   nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \
   uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \
+  kopensolaris*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
@@ -249,13 +250,16 @@ case $basic_machine in
 	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
 	| i370 | i860 | i960 | ia64 \
 	| ip2k | iq2000 \
+	| lm32 \
 	| m32c | m32r | m32rle | m68000 | m68k | m88k \
-	| maxq | mb | microblaze | mcore | mep \
+	| maxq | mb | microblaze | mcore | mep | metag \
 	| mips | mipsbe | mipseb | mipsel | mipsle \
 	| mips16 \
 	| mips64 | mips64el \
-	| mips64vr | mips64vrel \
+	| mips64octeon | mips64octeonel \
 	| mips64orion | mips64orionel \
+	| mips64r5900 | mips64r5900el \
+	| mips64vr | mips64vrel \
 	| mips64vr4100 | mips64vr4100el \
 	| mips64vr4300 | mips64vr4300el \
 	| mips64vr5000 | mips64vr5000el \
@@ -268,6 +272,7 @@ case $basic_machine in
 	| mipsisa64sr71k | mipsisa64sr71kel \
 	| mipstx39 | mipstx39el \
 	| mn10200 | mn10300 \
+	| moxie \
 	| mt \
 	| msp430 \
 	| nios | nios2 \
@@ -277,7 +282,7 @@ case $basic_machine in
 	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
 	| pyramid \
 	| score \
-	| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
+	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
 	| sh64 | sh64le \
 	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
 	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
@@ -286,7 +291,7 @@ case $basic_machine in
 	| v850 | v850e \
 	| we32k \
 	| x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \
-	| z8k)
+	| z8k | z80)
 		basic_machine=$basic_machine-unknown
 		;;
 	m6811 | m68hc11 | m6812 | m68hc12)
@@ -329,14 +334,17 @@ case $basic_machine in
 	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
 	| i*86-* | i860-* | i960-* | ia64-* \
 	| ip2k-* | iq2000-* \
+	| lm32-* \
 	| m32c-* | m32r-* | m32rle-* \
 	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | maxq-* | mcore-* \
+	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
 	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
 	| mips16-* \
 	| mips64-* | mips64el-* \
-	| mips64vr-* | mips64vrel-* \
+	| mips64octeon-* | mips64octeonel-* \
 	| mips64orion-* | mips64orionel-* \
+	| mips64r5900-* | mips64r5900el-* \
+	| mips64vr-* | mips64vrel-* \
 	| mips64vr4100-* | mips64vr4100el-* \
 	| mips64vr4300-* | mips64vr4300el-* \
 	| mips64vr5000-* | mips64vr5000el-* \
@@ -358,20 +366,20 @@ case $basic_machine in
 	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
 	| pyramid-* \
 	| romp-* | rs6000-* \
-	| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
+	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
 	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
 	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
 	| sparclite-* \
 	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
 	| tahoe-* | thumb-* \
-	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
 	| tron-* \
 	| v850-* | v850e-* | vax-* \
 	| we32k-* \
 	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
 	| xstormy16-* | xtensa*-* \
 	| ymp-* \
-	| z8k-*)
+	| z8k-* | z80-*)
 		;;
 	# Recognize the basic CPU types without company name, with glob match.
 	xtensa*)
@@ -439,6 +447,10 @@ case $basic_machine in
 		basic_machine=m68k-apollo
 		os=-bsd
 		;;
+	aros)
+		basic_machine=i386-pc
+		os=-aros
+		;;
 	aux)
 		basic_machine=m68k-apple
 		os=-aux
@@ -459,6 +471,10 @@ case $basic_machine in
 		basic_machine=c90-cray
 		os=-unicos
 		;;
+        cegcc)
+		basic_machine=arm-unknown
+		os=-cegcc
+		;;
 	convex-c1)
 		basic_machine=c1-convex
 		os=-bsd
@@ -526,6 +542,10 @@ case $basic_machine in
 		basic_machine=m88k-motorola
 		os=-sysv3
 		;;
+	dicos)
+		basic_machine=i686-pc
+		os=-dicos
+		;;
 	djgpp)
 		basic_machine=i586-pc
 		os=-msdosdjgpp
@@ -1128,6 +1148,10 @@ case $basic_machine in
 		basic_machine=z8k-unknown
 		os=-sim
 		;;
+	z80-*-coff)
+		basic_machine=z80-unknown
+		os=-sim
+		;;
 	none)
 		basic_machine=none-none
 		os=-none
@@ -1166,7 +1190,7 @@ case $basic_machine in
 	we32k)
 		basic_machine=we32k-att
 		;;
-	sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
+	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
 		basic_machine=sh-unknown
 		;;
 	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
@@ -1238,8 +1262,9 @@ case $os in
 	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
 	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
 	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+	      | -kopensolaris* \
 	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-	      | -aos* \
+	      | -aos* | -aros* \
 	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
 	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
 	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
@@ -1248,7 +1273,7 @@ case $os in
 	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
 	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
 	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-	      | -chorusos* | -chorusrdb* \
+	      | -chorusos* | -chorusrdb* | -cegcc* \
 	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
 	      | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \
 	      | -uxpv* | -beos* | -mpeix* | -udk* \
@@ -1388,6 +1413,9 @@ case $os in
 	-zvmoe)
 		os=-zvmoe
 		;;
+	-dicos*)
+		os=-dicos
+		;;
 	-none)
 		;;
 	*)
diff --git a/libgc/configure b/libgc/configure
index 49c1def..20bb96c 100755
--- a/libgc/configure
+++ b/libgc/configure
@@ -1,20 +1,22 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for libgc-mono 6.6.
+# Generated by GNU Autoconf 2.64 for libgc-mono 6.6.
 #
 # Report bugs to <Hans_Boehm at hp.com>.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
+# Foundation, Inc.
+#
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
@@ -22,23 +24,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
 esac
-
 fi
 
 
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
 as_nl='
 '
 export as_nl
@@ -46,7 +40,13 @@ export as_nl
 as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
   as_echo='printf %s\n'
   as_echo_n='printf %s'
 else
@@ -57,7 +57,7 @@ else
     as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
     as_echo_n_body='eval
       arg=$1;
-      case $arg in
+      case $arg in #(
       *"$as_nl"*)
 	expr "X$arg" : "X\\(.*\\)$as_nl";
 	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
@@ -80,13 +80,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
   }
 fi
 
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
 
 # IFS
 # We need space, tab and new line, in precisely that order.  Quoting is
@@ -96,15 +89,15 @@ fi
 IFS=" ""	$as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
+case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
 IFS=$as_save_IFS
 
      ;;
@@ -116,12 +109,16 @@ if test "x$as_myself" = x; then
 fi
 if test ! -f "$as_myself"; then
   $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
+  exit 1
 fi
 
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
 done
 PS1='$ '
 PS2='> '
@@ -133,330 +130,300 @@ export LC_ALL
 LANGUAGE=C
 export LANGUAGE
 
-# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-
-# Name of the executable.
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
 # CDPATH.
-$as_unset CDPATH
-
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
 
 if test "x$CONFIG_SHELL" = x; then
-  if (eval ":") 2>/dev/null; then
-  as_have_required=yes
+  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
+  emulate sh
+  NULLCMD=:
+  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
+  # is contrary to our usage.  Disable this feature.
+  alias -g '\${1+\"\$@\"}'='\"\$@\"'
+  setopt NO_GLOB_SUBST
 else
-  as_have_required=no
+  case \`(set -o) 2>/dev/null\` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
+esac
 fi
-
-  if test $as_have_required = yes &&	 (eval ":
-(as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
+"
+  as_required="as_fn_return () { (exit \$1); }
+as_fn_success () { as_fn_return 0; }
+as_fn_failure () { as_fn_return 1; }
+as_fn_ret_success () { return 0; }
+as_fn_ret_failure () { return 1; }
 
 exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
+as_fn_success || { exitcode=1; echo as_fn_success failed.; }
+as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
+as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
+as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
+if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
+
+else
+  exitcode=1; echo positional parameters were not saved.
+fi
+test x\$exitcode = x0 || exit 1"
+  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
+  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
+  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
+  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
+test \$(( 1 + 1 )) = 2 || exit 1"
+  if (eval "$as_required") 2>/dev/null; then :
+  as_have_required=yes
 else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
+  as_have_required=no
 fi
+  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
 
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
 else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test \$exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=\$LINENO
-  as_lineno_2=\$LINENO
-  test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&
-  test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }
-") 2> /dev/null; then
-  :
-else
-  as_candidate_shells=
-    as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+as_found=false
 for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  case $as_dir in
+  as_found=:
+  case $as_dir in #(
 	 /*)
 	   for as_base in sh bash ksh sh5; do
-	     as_candidate_shells="$as_candidate_shells $as_dir/$as_base"
+	     # Try only shells that exist, to save several forks.
+	     as_shell=$as_dir/$as_base
+	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
+		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  CONFIG_SHELL=$as_shell as_have_required=yes
+		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
+  break 2
+fi
+fi
 	   done;;
        esac
+  as_found=false
 done
+$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
+  CONFIG_SHELL=$SHELL as_have_required=yes
+fi; }
 IFS=$as_save_IFS
 
 
-      for as_shell in $as_candidate_shells $SHELL; do
-	 # Try only shells that exist, to save several forks.
-	 if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		{ ("$as_shell") 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-_ASEOF
-}; then
-  CONFIG_SHELL=$as_shell
-	       as_have_required=yes
-	       if { "$as_shell" 2> /dev/null <<\_ASEOF
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
-esac
-
-fi
-
-
-:
-(as_func_return () {
-  (exit $1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
-
-exitcode=0
-if as_func_success; then
-  :
-else
-  exitcode=1
-  echo as_func_success failed.
-fi
-
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
-
-if as_func_ret_success; then
-  :
-else
-  exitcode=1
-  echo as_func_ret_success failed.
-fi
-
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
-fi
-
-if ( set x; as_func_ret_success y && test x = "$1" ); then
-  :
-else
-  exitcode=1
-  echo positional parameters were not saved.
-fi
-
-test $exitcode = 0) || { (exit 1); exit 1; }
-
-(
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }
-
-_ASEOF
-}; then
-  break
-fi
-
-fi
-
-      done
-
-      if test "x$CONFIG_SHELL" != x; then
-  for as_var in BASH_ENV ENV
-	do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-	done
+      if test "x$CONFIG_SHELL" != x; then :
+  # We cannot yet assume a decent shell, so we have to provide a
+	# neutralization value for shells without unset; and this also
+	# works around shells that cannot unset nonexistent variables.
+	BASH_ENV=/dev/null
+	ENV=/dev/null
+	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
 	export CONFIG_SHELL
 	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
 fi
 
-
-    if test $as_have_required = no; then
-  echo This script requires a shell more modern than all the
-      echo shells that I found on your system.  Please install a
-      echo modern shell, or manually run the script under such a
-      echo shell if you do have one.
-      { (exit 1); exit 1; }
+    if test x$as_have_required = xno; then :
+  $as_echo "$0: This script requires a shell more modern than all"
+  $as_echo "$0: the shells that I found on your system."
+  if test x${ZSH_VERSION+set} = xset ; then
+    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
+    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
+  else
+    $as_echo "$0: Please tell bug-autoconf at gnu.org and Hans_Boehm at hp.com
+$0: about your system, including any error possibly output
+$0: before this message. Then install a modern shell, or
+$0: manually run the script under such a shell if you do
+$0: have one."
+  fi
+  exit 1
 fi
-
-
 fi
-
 fi
+SHELL=${CONFIG_SHELL-/bin/sh}
+export SHELL
+# Unset more variables known to interfere with behavior of common tools.
+CLICOLOR_FORCE= GREP_OPTIONS=
+unset CLICOLOR_FORCE GREP_OPTIONS
 
+## --------------------- ##
+## M4sh Shell Functions. ##
+## --------------------- ##
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
 
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
 
-(eval "as_func_return () {
-  (exit \$1)
-}
-as_func_success () {
-  as_func_return 0
-}
-as_func_failure () {
-  as_func_return 1
-}
-as_func_ret_success () {
-  return 0
-}
-as_func_ret_failure () {
-  return 1
-}
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
 
-exitcode=0
-if as_func_success; then
-  :
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
 else
-  exitcode=1
-  echo as_func_success failed.
-fi
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
 
-if as_func_failure; then
-  exitcode=1
-  echo as_func_failure succeeded.
-fi
 
-if as_func_ret_success; then
-  :
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with status $?, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$?; test $as_status -eq 0 && as_status=1
+  if test "$3"; then
+    as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+  fi
+  $as_echo "$as_me: error: $1" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+   test "X`expr 00001 : '.*\(...\)'`" = X001; then
+  as_expr=expr
 else
-  exitcode=1
-  echo as_func_ret_success failed.
+  as_expr=false
 fi
 
-if as_func_ret_failure; then
-  exitcode=1
-  echo as_func_ret_failure succeeded.
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
+  as_basename=basename
+else
+  as_basename=false
 fi
 
-if ( set x; as_func_ret_success y && test x = \"\$1\" ); then
-  :
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
 else
-  exitcode=1
-  echo positional parameters were not saved.
+  as_dirname=false
 fi
 
-test \$exitcode = 0") || {
-  echo No shell found that supports shell functions.
-  echo Please tell bug-autoconf at gnu.org about your system,
-  echo including any error possibly output before this message.
-  echo This can help us improve future autoconf versions.
-  echo Configuration will now proceed without shell functions.
-}
-
+as_me=`$as_basename -- "$0" ||
+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
+	 X"$0" : 'X\(//\)$' \| \
+	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+    sed '/^.*\/\([^/][^/]*\)\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\/\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
 
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
 
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
 
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  Blame Lee
-  # E. McMahon (1931-1989) for sed's syntax.  :-)
+  as_lineno_1=$LINENO as_lineno_1a=$LINENO
+  as_lineno_2=$LINENO as_lineno_2a=$LINENO
+  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
+  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
+  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
   sed -n '
     p
     /[$]LINENO/=
@@ -473,8 +440,7 @@ test \$exitcode = 0") || {
       s/-\n.*//
     ' >$as_me.lineno &&
   chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
 
   # Don't try to exec as it changes $[0], causing all sort of problems
   # (the dirname of $[0] is not the place where we might find the
@@ -484,29 +450,18 @@ test \$exitcode = 0") || {
   exit
 }
 
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
 ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
+case `echo -n x` in #(((((
 -n*)
-  case `echo 'x\c'` in
+  case `echo 'xy\c'` in
   *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
   esac;;
 *)
   ECHO_N='-n';;
 esac
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
 
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
@@ -536,7 +491,7 @@ rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
 
 if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
+  as_mkdir_p='mkdir -p "$as_dir"'
 else
   test -d ./-p && rmdir ./-p
   as_mkdir_p=false
@@ -555,10 +510,10 @@ else
       if test -d "$1"; then
 	test -d "$1/.";
       else
-	case $1 in
+	case $1 in #(
 	-*)set "./$1";;
 	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
 	???[sx]*):;;*)false;;esac;fi
     '\'' sh
   '
@@ -573,7 +528,6 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
 
-
 # Check that we are running under the correct shell.
 SHELL=${CONFIG_SHELL-/bin/sh}
 
@@ -740,7 +694,6 @@ cross_compiling=no
 subdirs=
 MFLAGS=
 MAKEFLAGS=
-SHELL=${CONFIG_SHELL-/bin/sh}
 
 # Identity of this package.
 PACKAGE_NAME='libgc-mono'
@@ -748,6 +701,7 @@ PACKAGE_TARNAME='libgc-mono'
 PACKAGE_VERSION='6.6'
 PACKAGE_STRING='libgc-mono 6.6'
 PACKAGE_BUGREPORT='Hans_Boehm at hp.com'
+PACKAGE_URL=''
 
 ac_unique_file="gcj_mlc.c"
 # Factoring default headers for most tests.
@@ -786,7 +740,9 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='LTLIBOBJS
+ac_subst_vars='am__EXEEXT_FALSE
+am__EXEEXT_TRUE
+LTLIBOBJS
 LIBOBJS
 USE_LIBDIR_FALSE
 USE_LIBDIR_TRUE
@@ -921,6 +877,7 @@ bindir
 program_transform_name
 prefix
 exec_prefix
+PACKAGE_URL
 PACKAGE_BUGREPORT
 PACKAGE_STRING
 PACKAGE_VERSION
@@ -1072,8 +1029,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error "invalid feature name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1099,8 +1055,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error "invalid feature name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1304,8 +1259,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error "invalid package name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1321,8 +1275,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
-   { (exit 1); exit 1; }; }
+      as_fn_error "invalid package name: $ac_useropt"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1352,17 +1305,17 @@ do
   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
     x_libraries=$ac_optarg ;;
 
-  -*) { $as_echo "$as_me: error: unrecognized option: $ac_option
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; }
+  -*) as_fn_error "unrecognized option: \`$ac_option'
+Try \`$0 --help' for more information."
     ;;
 
   *=*)
     ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2
-   { (exit 1); exit 1; }; }
+    case $ac_envvar in #(
+      '' | [0-9]* | *[!_$as_cr_alnum]* )
+      as_fn_error "invalid variable name: \`$ac_envvar'" ;;
+    esac
     eval $ac_envvar=\$ac_optarg
     export $ac_envvar ;;
 
@@ -1379,15 +1332,13 @@ done
 
 if test -n "$ac_prev"; then
   ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { $as_echo "$as_me: error: missing argument to $ac_option" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error "missing argument to $ac_option"
 fi
 
 if test -n "$ac_unrecognized_opts"; then
   case $enable_option_checking in
     no) ;;
-    fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
-   { (exit 1); exit 1; }; } ;;
+    fatal) as_fn_error "unrecognized options: $ac_unrecognized_opts" ;;
     *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
   esac
 fi
@@ -1410,8 +1361,7 @@ do
     [\\/$]* | ?:[\\/]* )  continue;;
     NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
   esac
-  { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error "expected an absolute directory name for --$ac_var: $ac_val"
 done
 
 # There might be people who depend on the old broken behavior: `$host'
@@ -1441,11 +1391,9 @@ test "$silent" = yes && exec 6>/dev/null
 ac_pwd=`pwd` && test -n "$ac_pwd" &&
 ac_ls_di=`ls -di .` &&
 ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  { $as_echo "$as_me: error: working directory cannot be determined" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error "working directory cannot be determined"
 test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  { $as_echo "$as_me: error: pwd does not report name of working directory" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error "pwd does not report name of working directory"
 
 
 # Find the source files, if location was not specified.
@@ -1484,13 +1432,11 @@ else
 fi
 if test ! -r "$srcdir/$ac_unique_file"; then
   test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
-   { (exit 1); exit 1; }; }
+  as_fn_error "cannot find sources ($ac_unique_file) in $srcdir"
 fi
 ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
 ac_abs_confdir=`(
-	cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2
-   { (exit 1); exit 1; }; }
+	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error "$ac_msg"
 	pwd)`
 # When building in place, set srcdir=.
 if test "$ac_abs_confdir" = "$ac_pwd"; then
@@ -1703,21 +1649,499 @@ test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
 libgc-mono configure 6.6
-generated by GNU Autoconf 2.63
+generated by GNU Autoconf 2.64
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
+Copyright (C) 2009 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
   exit
 fi
+
+## ------------------------ ##
+## Autoconf initialization. ##
+## ------------------------ ##
+
+# ac_fn_c_try_compile LINENO
+# --------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
+
+} # ac_fn_c_try_compile
+
+# ac_fn_cxx_try_compile LINENO
+# ----------------------------
+# Try to compile conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext
+  if { { ac_try="$ac_compile"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compile") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest.$ac_objext; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
+
+} # ac_fn_cxx_try_compile
+
+# ac_fn_c_try_link LINENO
+# -----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
+
+} # ac_fn_c_try_link
+
+# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists and can be compiled using the include files in
+# INCLUDES, setting the cache variable VAR accordingly.
+ac_fn_c_check_header_compile ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_header_compile
+
+# ac_fn_c_try_cpp LINENO
+# ----------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_c_try_cpp ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } >/dev/null && {
+	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+    ac_retval=1
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
+
+} # ac_fn_c_try_cpp
+
+# ac_fn_c_try_run LINENO
+# ----------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
+# that executables *can* be run.
+ac_fn_c_try_run ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
+  { { case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_try") 2>&5
+  ac_status=$?
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+       $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+       ac_retval=$ac_status
+fi
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
+
+} # ac_fn_c_try_run
+
+# ac_fn_c_check_func LINENO FUNC VAR
+# ----------------------------------
+# Tests whether FUNC exists, setting the cache variable VAR accordingly
+ac_fn_c_check_func ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
+   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
+#define $2 innocuous_$2
+
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $2 (); below.
+    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
+    <limits.h> exists even on freestanding compilers.  */
+
+#ifdef __STDC__
+# include <limits.h>
+#else
+# include <assert.h>
+#endif
+
+#undef $2
+
+/* Override any GCC internal prototype to avoid an error.
+   Use char because int might match the return type of a GCC
+   builtin and then its argument prototype would still apply.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+char $2 ();
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined __stub_$2 || defined __stub___$2
+choke me
+#endif
+
+int
+main ()
+{
+return $2 ();
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+  eval "$3=yes"
+else
+  eval "$3=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_func
+
+# ac_fn_cxx_try_cpp LINENO
+# ------------------------
+# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_cpp ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { { ac_try="$ac_cpp conftest.$ac_ext"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } >/dev/null && {
+	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+    ac_retval=1
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
+
+} # ac_fn_cxx_try_cpp
+
+# ac_fn_cxx_try_link LINENO
+# -------------------------
+# Try to link conftest.$ac_ext, and return whether this succeeded.
+ac_fn_cxx_try_link ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  rm -f conftest.$ac_objext conftest$ac_exeext
+  if { { ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_link") 2>conftest.err
+  ac_status=$?
+  if test -s conftest.err; then
+    grep -v '^ *+' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    mv -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && {
+	 test -z "$ac_cxx_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then :
+  ac_retval=0
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	ac_retval=1
+fi
+  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
+  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
+  # interfere with the next link command; also delete a directory that is
+  # left behind by Apple's compiler.  We do this before executing the actions.
+  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  return $ac_retval
+
+} # ac_fn_cxx_try_link
+
+# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
+# -------------------------------------------------------
+# Tests whether HEADER exists, giving a warning if it cannot be compiled using
+# the include files in INCLUDES and setting the cache variable VAR
+# accordingly.
+ac_fn_c_check_header_mongrel ()
+{
+  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+  if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+else
+  # Is the header compilable?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
+$as_echo_n "checking $2 usability... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+$4
+#include <$2>
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  ac_header_compiler=yes
+else
+  ac_header_compiler=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
+
+# Is the header present?
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
+$as_echo_n "checking $2 presence... " >&6; }
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#include <$2>
+_ACEOF
+if ac_fn_c_try_cpp "$LINENO"; then :
+  ac_header_preproc=yes
+else
+  ac_header_preproc=no
+fi
+rm -f conftest.err conftest.$ac_ext
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
+
+# So?  What about this header?
+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
+  yes:no: )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+    ;;
+  no:yes:* )
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
+( cat <<\_ASBOX
+## -------------------------------- ##
+## Report this to Hans_Boehm at hp.com ##
+## -------------------------------- ##
+_ASBOX
+     ) | sed "s/^/$as_me: WARNING:     /" >&2
+    ;;
+esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
+$as_echo_n "checking for $2... " >&6; }
+if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then :
+  $as_echo_n "(cached) " >&6
+else
+  eval "$3=\$ac_header_compiler"
+fi
+eval ac_res=\$$3
+	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+fi
+  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+
+} # ac_fn_c_check_header_mongrel
 cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by libgc-mono $as_me 6.6, which was
-generated by GNU Autoconf 2.63.  Invocation command line was
+generated by GNU Autoconf 2.64.  Invocation command line was
 
   $ $0 $@
 
@@ -1753,8 +2177,8 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  $as_echo "PATH: $as_dir"
-done
+    $as_echo "PATH: $as_dir"
+  done
 IFS=$as_save_IFS
 
 } >&5
@@ -1791,9 +2215,9 @@ do
       ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
     case $ac_pass in
-    1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
+    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
     2)
-      ac_configure_args1="$ac_configure_args1 '$ac_arg'"
+      as_fn_append ac_configure_args1 " '$ac_arg'"
       if test $ac_must_keep_next = true; then
 	ac_must_keep_next=false # Got value, back to normal.
       else
@@ -1809,13 +2233,13 @@ do
 	  -* ) ac_must_keep_next=true ;;
 	esac
       fi
-      ac_configure_args="$ac_configure_args '$ac_arg'"
+      as_fn_append ac_configure_args " '$ac_arg'"
       ;;
     esac
   done
 done
-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }
-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }
+{ ac_configure_args0=; unset ac_configure_args0;}
+{ ac_configure_args1=; unset ac_configure_args1;}
 
 # When interrupted or exit'd, cleanup temporary files, and complete
 # config.log.  We remove comments because anyway the quotes in there
@@ -1840,13 +2264,13 @@ _ASBOX
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
       BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) $as_unset $ac_var ;;
+      *) { eval $ac_var=; unset $ac_var;} ;;
       esac ;;
     esac
   done
@@ -1918,39 +2342,41 @@ _ASBOX
     exit $exit_status
 ' 0
 for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal
+  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
 done
 ac_signal=0
 
 # confdefs.h avoids OS command line length limits that DEFS can exceed.
 rm -f -r conftest* confdefs.h
 
+$as_echo "/* confdefs.h */" > confdefs.h
+
 # Predefined preprocessor variables.
 
 cat >>confdefs.h <<_ACEOF
 #define PACKAGE_NAME "$PACKAGE_NAME"
 _ACEOF
 
-
 cat >>confdefs.h <<_ACEOF
 #define PACKAGE_TARNAME "$PACKAGE_TARNAME"
 _ACEOF
 
-
 cat >>confdefs.h <<_ACEOF
 #define PACKAGE_VERSION "$PACKAGE_VERSION"
 _ACEOF
 
-
 cat >>confdefs.h <<_ACEOF
 #define PACKAGE_STRING "$PACKAGE_STRING"
 _ACEOF
 
-
 cat >>confdefs.h <<_ACEOF
 #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
 _ACEOF
 
+cat >>confdefs.h <<_ACEOF
+#define PACKAGE_URL "$PACKAGE_URL"
+_ACEOF
+
 
 # Let the site file select an alternate cache file if it wants to.
 # Prefer an explicitly selected file to automatically selected ones.
@@ -1969,7 +2395,7 @@ for ac_site_file in "$ac_site_file1" "$ac_site_file2"
 do
   test "x$ac_site_file" = xNONE && continue
   if test -r "$ac_site_file"; then
-    { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
 $as_echo "$as_me: loading site script $ac_site_file" >&6;}
     sed 's/^/| /' "$ac_site_file" >&5
     . "$ac_site_file"
@@ -1980,7 +2406,7 @@ if test -r "$cache_file"; then
   # Some versions of bash will fail to source /dev/null (special
   # files actually), so we avoid doing that.
   if test -f "$cache_file"; then
-    { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
 $as_echo "$as_me: loading cache $cache_file" >&6;}
     case $cache_file in
       [\\/]* | ?:[\\/]* ) . "$cache_file";;
@@ -1988,7 +2414,7 @@ $as_echo "$as_me: loading cache $cache_file" >&6;}
     esac
   fi
 else
-  { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
 $as_echo "$as_me: creating cache $cache_file" >&6;}
   >$cache_file
 fi
@@ -2003,11 +2429,11 @@ for ac_var in $ac_precious_vars; do
   eval ac_new_val=\$ac_env_${ac_var}_value
   case $ac_old_set,$ac_new_set in
     set,)
-      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,set)
-      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,);;
@@ -2017,17 +2443,17 @@ $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
 	ac_old_val_w=`echo x $ac_old_val`
 	ac_new_val_w=`echo x $ac_new_val`
 	if test "$ac_old_val_w" != "$ac_new_val_w"; then
-	  { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
 	  ac_cache_corrupted=:
 	else
-	  { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
 	  eval $ac_var=\$ac_old_val
 	fi
-	{ $as_echo "$as_me:$LINENO:   former value:  \`$ac_old_val'" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
 $as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-	{ $as_echo "$as_me:$LINENO:   current value: \`$ac_new_val'" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
 $as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
       fi;;
   esac
@@ -2039,43 +2465,20 @@ $as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
     esac
     case " $ac_configure_args " in
       *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
     esac
   fi
 done
 if $ac_cache_corrupted; then
-  { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-  { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
 fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+## -------------------- ##
+## Main body of script. ##
+## -------------------- ##
 
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -2085,28 +2488,20 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 
-am__api_version='1.10'
+am__api_version='1.11'
 
 ac_aux_dir=
 for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
+  for ac_t in install-sh install.sh shtool; do
+    if test -f "$ac_dir/$ac_t"; then
+      ac_aux_dir=$ac_dir
+      ac_install_sh="$ac_aux_dir/$ac_t -c"
+      break 2
+    fi
+  done
 done
 if test -z "$ac_aux_dir"; then
-  { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
-$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
 fi
 
 # These three variables are undocumented and unsupported,
@@ -2132,10 +2527,10 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 # OS/2's system install, which has a completely different semantic
 # ./install, which can be erroneously created by make from ./install.sh.
 # Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
 $as_echo_n "checking for a BSD-compatible install... " >&6; }
 if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
+if test "${ac_cv_path_install+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -2143,11 +2538,11 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
-  ./ | .// | /cC/* | \
+    # Account for people who put trailing slashes in PATH elements.
+case $as_dir/ in #((
+  ./ | .// | /[cC]/* | \
   /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
+  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
   /usr/ucb/* ) ;;
   *)
     # OSF1 and SCO ODT 3.0 have their own names for install.
@@ -2184,7 +2579,7 @@ case $as_dir/ in
     ;;
 esac
 
-done
+  done
 IFS=$as_save_IFS
 
 rm -rf conftest.one conftest.two conftest.dir
@@ -2200,7 +2595,7 @@ fi
     INSTALL=$ac_install_sh
   fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
 $as_echo "$INSTALL" >&6; }
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
@@ -2211,21 +2606,34 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
-{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
 $as_echo_n "checking whether build environment is sane... " >&6; }
 # Just in case
 sleep 1
 echo timestamp > conftest.file
+# Reject unsafe characters in $srcdir or the absolute working directory
+# name.  Accept space and tab only in the latter.
+am_lf='
+'
+case `pwd` in
+  *[\\\"\#\$\&\'\`$am_lf]*)
+    as_fn_error "unsafe absolute working directory name" "$LINENO" 5;;
+esac
+case $srcdir in
+  *[\\\"\#\$\&\'\`$am_lf\ \	]*)
+    as_fn_error "unsafe srcdir value: \`$srcdir'" "$LINENO" 5;;
+esac
+
 # Do `set' in a subshell so we don't clobber the current shell's
 # arguments.  Must try -L first in case configure is actually a
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
 if (
-   set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
+   set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
    if test "$*" = "X"; then
       # -L didn't work.
-      set X `ls -t $srcdir/configure conftest.file`
+      set X `ls -t "$srcdir/configure" conftest.file`
    fi
    rm -f conftest.file
    if test "$*" != "X $srcdir/configure conftest.file" \
@@ -2235,11 +2643,8 @@ if (
       # if, for instance, CONFIG_SHELL is bash and it inherits a
       # broken ls alias from the environment.  This has actually
       # happened.  Such a system could not be considered "sane".
-      { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" >&5
-$as_echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
-alias in your environment" >&2;}
-   { (exit 1); exit 1; }; }
+      as_fn_error "ls -t appears to fail.  Make sure there is not a broken
+alias in your environment" "$LINENO" 5
    fi
 
    test "$2" = conftest.file
@@ -2248,13 +2653,10 @@ then
    # Ok.
    :
 else
-   { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files!
-Check your system clock" >&5
-$as_echo "$as_me: error: newly created file is older than distributed files!
-Check your system clock" >&2;}
-   { (exit 1); exit 1; }; }
+   as_fn_error "newly created file is older than distributed files!
+Check your system clock" "$LINENO" 5
 fi
-{ $as_echo "$as_me:$LINENO: result: yes" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 test "$program_prefix" != NONE &&
   program_transform_name="s&^&$program_prefix&;$program_transform_name"
@@ -2269,20 +2671,136 @@ program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
 # expand $ac_aux_dir to an absolute path
 am_aux_dir=`cd $ac_aux_dir && pwd`
 
-test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
+if test x"${MISSING+set}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;;
+  *)
+    MISSING="\${SHELL} $am_aux_dir/missing" ;;
+  esac
+fi
 # Use eval to expand $SHELL
 if eval "$MISSING --run true"; then
   am_missing_run="$MISSING --run "
 else
   am_missing_run=
-  { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5
 $as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
+if test x"${install_sh}" != xset; then
+  case $am_aux_dir in
+  *\ * | *\	*)
+    install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;;
+  *)
+    install_sh="\${SHELL} $am_aux_dir/install-sh"
+  esac
+fi
+
+# Installed binaries are usually stripped using `strip' when the user
+# run `make install-strip'.  However `strip' might not be the right
+# tool to use in cross-compilation environments, therefore Automake
+# will honor the `STRIP' environment variable to overrule this program.
+if test "$cross_compiling" != no; then
+  if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
+set dummy ${ac_tool_prefix}strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_STRIP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+STRIP=$ac_cv_prog_STRIP
+if test -n "$STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_STRIP"; then
+  ac_ct_STRIP=$STRIP
+  # Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_STRIP"; then
+  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_STRIP="strip"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
+if test -n "$ac_ct_STRIP"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_STRIP" = x; then
+    STRIP=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    STRIP=$ac_ct_STRIP
+  fi
+else
+  STRIP="$ac_cv_prog_STRIP"
+fi
+
+fi
+INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5
 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
 if test -z "$MKDIR_P"; then
-  if test "${ac_cv_path_mkdir+set}" = set; then
+  if test "${ac_cv_path_mkdir+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -2290,7 +2808,7 @@ for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_prog in mkdir gmkdir; do
+    for ac_prog in mkdir gmkdir; do
 	 for ac_exec_ext in '' $ac_executable_extensions; do
 	   { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
 	   case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
@@ -2302,7 +2820,7 @@ do
 	   esac
 	 done
        done
-done
+  done
 IFS=$as_save_IFS
 
 fi
@@ -2318,7 +2836,7 @@ fi
     MKDIR_P="$ac_install_sh -d"
   fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
 $as_echo "$MKDIR_P" >&6; }
 
 mkdir_p="$MKDIR_P"
@@ -2331,9 +2849,9 @@ for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AWK+set}" = set; then
+if test "${ac_cv_prog_AWK+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AWK"; then
@@ -2344,24 +2862,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AWK="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
-  { $as_echo "$as_me:$LINENO: result: $AWK" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
 $as_echo "$AWK" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -2369,11 +2887,11 @@ fi
   test -n "$AWK" && break
 done
 
-{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5
 $as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
 set x ${MAKE-make}
 ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
-if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
+if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then :
   $as_echo_n "(cached) " >&6
 else
   cat >conftest.make <<\_ACEOF
@@ -2391,11 +2909,11 @@ esac
 rm -f conftest.make
 fi
 if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
   SET_MAKE=
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
   SET_MAKE="MAKE=${MAKE-make}"
 fi
@@ -2415,9 +2933,7 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then
   am__isrc=' -I$(srcdir)'
   # test to see if srcdir already configured
   if test -f $srcdir/config.status; then
-    { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
-$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "source directory already configured; run \"make distclean\" there first" "$LINENO" 5
   fi
 fi
 
@@ -2452,108 +2968,6 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
 
 MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
 
-install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
-
-# Installed binaries are usually stripped using `strip' when the user
-# run `make install-strip'.  However `strip' might not be the right
-# tool to use in cross-compilation environments, therefore Automake
-# will honor the `STRIP' environment variable to overrule this program.
-if test "$cross_compiling" != no; then
-  if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
-  { $as_echo "$as_me:$LINENO: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
-  ac_ct_STRIP=$STRIP
-  # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_STRIP"; then
-  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_STRIP" = x; then
-    STRIP=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    STRIP=$ac_ct_STRIP
-  fi
-else
-  STRIP="$ac_cv_prog_STRIP"
-fi
-
-fi
-INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
-
 # We need awk for the "check" target.  The system "awk" is bad on
 # some platforms.
 # Always define AMTAR for backward compatibility.
@@ -2570,35 +2984,27 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
 
 # Make sure we can run config.sub.
 $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
-$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
 
-{ $as_echo "$as_me:$LINENO: checking build system type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
 $as_echo_n "checking build system type... " >&6; }
-if test "${ac_cv_build+set}" = set; then
+if test "${ac_cv_build+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_build_alias=$build_alias
 test "x$ac_build_alias" = x &&
   ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
 test "x$ac_build_alias" = x &&
-  { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "cannot guess build type; you must specify one" "$LINENO" 5
 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
-$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
 $as_echo "$ac_cv_build" >&6; }
 case $ac_cv_build in
 *-*-*) ;;
-*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
-$as_echo "$as_me: error: invalid value of canonical build" >&2;}
-   { (exit 1); exit 1; }; };;
+*) as_fn_error "invalid value of canonical build" "$LINENO" 5;;
 esac
 build=$ac_cv_build
 ac_save_IFS=$IFS; IFS='-'
@@ -2614,28 +3020,24 @@ IFS=$ac_save_IFS
 case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
 
-{ $as_echo "$as_me:$LINENO: checking host system type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
 $as_echo_n "checking host system type... " >&6; }
-if test "${ac_cv_host+set}" = set; then
+if test "${ac_cv_host+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test "x$host_alias" = x; then
   ac_cv_host=$ac_cv_build
 else
   ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
-$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
 $as_echo "$ac_cv_host" >&6; }
 case $ac_cv_host in
 *-*-*) ;;
-*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
-$as_echo "$as_me: error: invalid value of canonical host" >&2;}
-   { (exit 1); exit 1; }; };;
+*) as_fn_error "invalid value of canonical host" "$LINENO" 5;;
 esac
 host=$ac_cv_host
 ac_save_IFS=$IFS; IFS='-'
@@ -2663,9 +3065,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if test "${ac_cv_prog_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -2676,24 +3078,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -2703,9 +3105,9 @@ if test -z "$ac_cv_prog_CC"; then
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -2716,24 +3118,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
 $as_echo "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -2742,7 +3144,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -2756,9 +3158,9 @@ if test -z "$CC"; then
           if test -n "$ac_tool_prefix"; then
     # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if test "${ac_cv_prog_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -2769,24 +3171,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -2796,9 +3198,9 @@ fi
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if test "${ac_cv_prog_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -2810,18 +3212,18 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
        ac_prog_rejected=yes
        continue
      fi
     ac_cv_prog_CC="cc"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 if test $ac_prog_rejected = yes; then
@@ -2840,10 +3242,10 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -2855,9 +3257,9 @@ if test -z "$CC"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then
+if test "${ac_cv_prog_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -2868,24 +3270,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
 $as_echo "$CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -2899,9 +3301,9 @@ if test -z "$CC"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -2912,24 +3314,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
 $as_echo "$ac_ct_CC" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -2942,7 +3344,7 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -2953,73 +3355,55 @@ fi
 fi
 
 
-test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error "no acceptable C compiler found in \$PATH
+See \`config.log' for more details." "$LINENO" 5; }
 
 # Provide some information about the compiler.
-$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
 set X $ac_compile
 ac_compiler=$2
-{ (ac_try="$ac_compiler --version >&5"
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    rm -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
 
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-
+#include <stdio.h>
 int
 main ()
 {
+FILE *f = fopen ("conftest.out", "w");
+ return ferror (f) || fclose (f) != 0;
 
   ;
   return 0;
 }
 _ACEOF
 ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out conftest.out"
 # Try to create an executable without -o first, disregard a.out.
 # It will help us diagnose broken compilers, and finding out an intuition
 # of exeext.
-{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
 $as_echo_n "checking for C compiler default output file name... " >&6; }
 ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
 
@@ -3036,17 +3420,17 @@ do
 done
 rm -f $ac_rmfiles
 
-if { (ac_try="$ac_link_default"
+if { { ac_try="$ac_link_default"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_link_default") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
   # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
 # So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
 # in a Makefile.  We should not override ac_cv_exeext if it was cached,
@@ -3063,7 +3447,7 @@ do
 	# certainly right.
 	break;;
     *.* )
-        if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
+	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
 	then :; else
 	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
 	fi
@@ -3082,84 +3466,75 @@ test "$ac_cv_exeext" = no && ac_cv_exeext=
 else
   ac_file=''
 fi
-
-{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
 $as_echo "$ac_file" >&6; }
-if test -z "$ac_file"; then
+if test -z "$ac_file"; then :
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: C compiler cannot create executables
-See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }; }
+{ as_fn_set_status 77
+as_fn_error "C compiler cannot create executables
+See \`config.log' for more details." "$LINENO" 5; }; }
 fi
-
 ac_exeext=$ac_cv_exeext
 
 # Check that the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
 $as_echo_n "checking whether the C compiler works... " >&6; }
-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0
 # If not cross compiling, check that we can run a simple program.
 if test "$cross_compiling" != yes; then
   if { ac_try='./$ac_file'
-  { (case "(($ac_try" in
+  { { case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; }; then
     cross_compiling=no
   else
     if test "$cross_compiling" = maybe; then
 	cross_compiling=yes
     else
-	{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.
+as_fn_error "cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+See \`config.log' for more details." "$LINENO" 5; }
     fi
   fi
 fi
-{ $as_echo "$as_me:$LINENO: result: yes" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out conftest.out
 ac_clean_files=$ac_clean_files_save
 # Check that the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
 $as_echo_n "checking whether we are cross compiling... " >&6; }
-{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
 $as_echo "$cross_compiling" >&6; }
 
-{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
 $as_echo_n "checking for suffix of executables... " >&6; }
-if { (ac_try="$ac_link"
+if { { ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
   # If both `conftest.exe' and `conftest' are `present' (well, observable)
 # catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
 # work properly (i.e., refer to `conftest.exe'), while it won't with
@@ -3174,32 +3549,24 @@ for ac_file in conftest.exe conftest conftest.*; do
   esac
 done
 else
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error "cannot compute suffix of executables: cannot compile and link
+See \`config.log' for more details." "$LINENO" 5; }
 fi
-
 rm -f conftest$ac_cv_exeext
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
 $as_echo "$ac_cv_exeext" >&6; }
 
 rm -f conftest.$ac_ext
 EXEEXT=$ac_cv_exeext
 ac_exeext=$EXEEXT
-{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
 $as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then
+if test "${ac_cv_objext+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -3211,17 +3578,17 @@ main ()
 }
 _ACEOF
 rm -f conftest.o conftest.obj
-if { (ac_try="$ac_compile"
+if { { ac_try="$ac_compile"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
   (eval "$ac_compile") 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then :
   for ac_file in conftest.o conftest.obj conftest.*; do
   test -f "$ac_file" || continue;
   case $ac_file in
@@ -3234,31 +3601,23 @@ else
   $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error "cannot compute suffix of object files: cannot compile
+See \`config.log' for more details." "$LINENO" 5; }
 fi
-
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
 $as_echo "$ac_cv_objext" >&6; }
 OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
-{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then
+if test "${ac_cv_c_compiler_gnu+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -3272,37 +3631,16 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_compiler_gnu=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_compiler_gnu=no
+  ac_compiler_gnu=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
 $as_echo "$ac_cv_c_compiler_gnu" >&6; }
 if test $ac_compiler_gnu = yes; then
   GCC=yes
@@ -3311,20 +3649,16 @@ else
 fi
 ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
 $as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then
+if test "${ac_cv_prog_cc_g+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
    ac_c_werror_flag=yes
    ac_cv_prog_cc_g=no
    CFLAGS="-g"
-   cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -3335,35 +3669,11 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_g=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	CFLAGS=""
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  CFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -3374,36 +3684,12 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_compile "$LINENO"; then :
 
-	ac_c_werror_flag=$ac_save_c_werror_flag
+else
+  ac_c_werror_flag=$ac_save_c_werror_flag
 	 CFLAGS="-g"
-	 cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -3414,42 +3700,17 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_g=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    ac_c_werror_flag=$ac_save_c_werror_flag
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
 $as_echo "$ac_cv_prog_cc_g" >&6; }
 if test "$ac_test_CFLAGS" = set; then
   CFLAGS=$ac_save_CFLAGS
@@ -3466,18 +3727,14 @@ else
     CFLAGS=
   fi
 fi
-{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then
+if test "${ac_cv_prog_cc_c89+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
 ac_save_CC=$CC
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdarg.h>
 #include <stdio.h>
@@ -3534,32 +3791,9 @@ for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
 	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
 do
   CC="$ac_save_CC $ac_arg"
-  rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+  if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_prog_cc_c89=$ac_arg
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext
   test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
@@ -3570,17 +3804,19 @@ fi
 # AC_CACHE_VAL
 case "x$ac_cv_prog_cc_c89" in
   x)
-    { $as_echo "$as_me:$LINENO: result: none needed" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
 $as_echo "none needed" >&6; } ;;
   xno)
-    { $as_echo "$as_me:$LINENO: result: unsupported" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
 $as_echo "unsupported" >&6; } ;;
   *)
     CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
 esac
+if test "x$ac_cv_prog_cc_c89" != xno; then :
 
+fi
 
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -3595,44 +3831,44 @@ ac_config_commands="$ac_config_commands depfiles"
 am_make=${MAKE-make}
 cat > confinc << 'END'
 am__doit:
-	@echo done
+	@echo this is the am__doit target
 .PHONY: am__doit
 END
 # If we don't find an include directive, just comment out the code.
-{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5
 $as_echo_n "checking for style of include used by $am_make... " >&6; }
 am__include="#"
 am__quote=
 _am_result=none
 # First try GNU make style include.
 echo "include confinc" > confmf
-# We grep out `Entering directory' and `Leaving directory'
-# messages which can occur if `w' ends up in MAKEFLAGS.
-# In particular we don't look at `^make:' because GNU make might
-# be invoked under some other name (usually "gmake"), in which
-# case it prints its new name instead of `make'.
-if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
-   am__include=include
-   am__quote=
-   _am_result=GNU
-fi
+# Ignore all kinds of additional output from `make'.
+case `$am_make -s -f confmf 2> /dev/null` in #(
+*the\ am__doit\ target*)
+  am__include=include
+  am__quote=
+  _am_result=GNU
+  ;;
+esac
 # Now try BSD make style include.
 if test "$am__include" = "#"; then
    echo '.include "confinc"' > confmf
-   if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
-      am__include=.include
-      am__quote="\""
-      _am_result=BSD
-   fi
+   case `$am_make -s -f confmf 2> /dev/null` in #(
+   *the\ am__doit\ target*)
+     am__include=.include
+     am__quote="\""
+     _am_result=BSD
+     ;;
+   esac
 fi
 
 
-{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5
 $as_echo "$_am_result" >&6; }
 rm -f confinc confmf
 
 # Check whether --enable-dependency-tracking was given.
-if test "${enable_dependency_tracking+set}" = set; then
+if test "${enable_dependency_tracking+set}" = set; then :
   enableval=$enable_dependency_tracking;
 fi
 
@@ -3652,9 +3888,9 @@ fi
 
 depcc="$CC"   am_compiler_list=
 
-{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 $as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
+if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -3680,6 +3916,11 @@ else
   if test "$am_compiler_list" = ""; then
      am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
   fi
+  am__universal=false
+  case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac
+
   for depmode in $am_compiler_list; do
     # Setup a source with many dependencies, because some compilers
     # like to wrap large dependency lists on column 80 (with \), and
@@ -3697,7 +3938,17 @@ else
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
     case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
     nosideeffect)
       # after this tag, mechanisms are not by side-effect, so they'll
       # only be used when explicitly requested
@@ -3707,19 +3958,23 @@ else
 	break
       fi
       ;;
+    msvisualcpp | msvcmsys)
+      # This compiler won't grok `-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
     none) break ;;
     esac
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.
     if depmode=$depmode \
-       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       source=sub/conftest.c object=$am__obj \
        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
          >/dev/null 2>conftest.err &&
        grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
       # icc doesn't choke on unknown options, it will just issue warnings
       # or remarks (even with -Werror).  So we grep stderr for any message
@@ -3743,7 +3998,7 @@ else
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
 $as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 
@@ -3772,9 +4027,9 @@ if test -z "$CXX"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CXX+set}" = set; then
+if test "${ac_cv_prog_CXX+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CXX"; then
@@ -3785,24 +4040,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CXX=$ac_cv_prog_CXX
 if test -n "$CXX"; then
-  { $as_echo "$as_me:$LINENO: result: $CXX" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
 $as_echo "$CXX" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3816,9 +4071,9 @@ if test -z "$CXX"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CXX"; then
@@ -3829,24 +4084,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CXX="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
 if test -n "$ac_ct_CXX"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
 $as_echo "$ac_ct_CXX" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -3859,7 +4114,7 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -3870,53 +4125,36 @@ fi
   fi
 fi
 # Provide some information about the compiler.
-$as_echo "$as_me:$LINENO: checking for C++ compiler version" >&5
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
 set X $ac_compile
 ac_compiler=$2
-{ (ac_try="$ac_compiler --version >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    rm -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
 
-{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -3930,37 +4168,16 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_cxx_try_compile "$LINENO"; then :
   ac_compiler_gnu=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_compiler_gnu=no
+  ac_compiler_gnu=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
 if test $ac_compiler_gnu = yes; then
   GXX=yes
@@ -3969,20 +4186,16 @@ else
 fi
 ac_test_CXXFLAGS=${CXXFLAGS+set}
 ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
 $as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if test "${ac_cv_prog_cxx_g+set}" = set; then
+if test "${ac_cv_prog_cxx_g+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_cxx_werror_flag=$ac_cxx_werror_flag
    ac_cxx_werror_flag=yes
    ac_cv_prog_cxx_g=no
    CXXFLAGS="-g"
-   cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -3993,35 +4206,11 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_cxx_try_compile "$LINENO"; then :
   ac_cv_prog_cxx_g=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	CXXFLAGS=""
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  CXXFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -4032,36 +4221,12 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_cxx_try_compile "$LINENO"; then :
 
-	ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+else
+  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
 	 CXXFLAGS="-g"
-	 cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -4072,42 +4237,17 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_cxx_try_compile "$LINENO"; then :
   ac_cv_prog_cxx_g=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    ac_cxx_werror_flag=$ac_save_cxx_werror_flag
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
 $as_echo "$ac_cv_prog_cxx_g" >&6; }
 if test "$ac_test_CXXFLAGS" = set; then
   CXXFLAGS=$ac_save_CXXFLAGS
@@ -4132,9 +4272,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 depcc="$CXX"  am_compiler_list=
 
-{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 $as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then
+if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -4160,6 +4300,11 @@ else
   if test "$am_compiler_list" = ""; then
      am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
   fi
+  am__universal=false
+  case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac
+
   for depmode in $am_compiler_list; do
     # Setup a source with many dependencies, because some compilers
     # like to wrap large dependency lists on column 80 (with \), and
@@ -4177,7 +4322,17 @@ else
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
     case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
     nosideeffect)
       # after this tag, mechanisms are not by side-effect, so they'll
       # only be used when explicitly requested
@@ -4187,19 +4342,23 @@ else
 	break
       fi
       ;;
+    msvisualcpp | msvcmsys)
+      # This compiler won't grok `-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
     none) break ;;
     esac
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.
     if depmode=$depmode \
-       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       source=sub/conftest.c object=$am__obj \
        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
          >/dev/null 2>conftest.err &&
        grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
       # icc doesn't choke on unknown options, it will just issue warnings
       # or remarks (even with -Werror).  So we grep stderr for any message
@@ -4223,7 +4382,7 @@ else
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
 
@@ -4248,9 +4407,9 @@ test "${CCASFLAGS+set}" = set || CCASFLAGS=$CFLAGS
 
 depcc="$CCAS"   am_compiler_list=
 
-{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 $as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CCAS_dependencies_compiler_type+set}" = set; then
+if test "${am_cv_CCAS_dependencies_compiler_type+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -4276,6 +4435,9 @@ else
   if test "$am_compiler_list" = ""; then
      am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
   fi
+  am__universal=false
+
+
   for depmode in $am_compiler_list; do
     # Setup a source with many dependencies, because some compilers
     # like to wrap large dependency lists on column 80 (with \), and
@@ -4293,7 +4455,17 @@ else
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
     case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
     nosideeffect)
       # after this tag, mechanisms are not by side-effect, so they'll
       # only be used when explicitly requested
@@ -4303,19 +4475,23 @@ else
 	break
       fi
       ;;
+    msvisualcpp | msvcmsys)
+      # This compiler won't grok `-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
     none) break ;;
     esac
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.
     if depmode=$depmode \
-       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       source=sub/conftest.c object=$am__obj \
        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
          >/dev/null 2>conftest.err &&
        grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
       # icc doesn't choke on unknown options, it will just issue warnings
       # or remarks (even with -Werror).  So we grep stderr for any message
@@ -4339,7 +4515,7 @@ else
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_CCAS_dependencies_compiler_type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CCAS_dependencies_compiler_type" >&5
 $as_echo "$am_cv_CCAS_dependencies_compiler_type" >&6; }
 CCASDEPMODE=depmode=$am_cv_CCAS_dependencies_compiler_type
 
@@ -4357,9 +4533,9 @@ fi
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then
+if test "${ac_cv_prog_AR+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AR"; then
@@ -4370,24 +4546,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AR="${ac_tool_prefix}ar"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 AR=$ac_cv_prog_AR
 if test -n "$AR"; then
-  { $as_echo "$as_me:$LINENO: result: $AR" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
 $as_echo "$AR" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -4397,9 +4573,9 @@ if test -z "$ac_cv_prog_AR"; then
   ac_ct_AR=$AR
   # Extract the first word of "ar", so it can be a program name with args.
 set dummy ar; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_AR"; then
@@ -4410,24 +4586,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_AR="ar"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_AR=$ac_cv_prog_ac_ct_AR
 if test -n "$ac_ct_AR"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
 $as_echo "$ac_ct_AR" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -4436,7 +4612,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -4449,9 +4625,9 @@ fi
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then
+if test "${ac_cv_prog_RANLIB+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$RANLIB"; then
@@ -4462,24 +4638,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 RANLIB=$ac_cv_prog_RANLIB
 if test -n "$RANLIB"; then
-  { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
 $as_echo "$RANLIB" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -4489,9 +4665,9 @@ if test -z "$ac_cv_prog_RANLIB"; then
   ac_ct_RANLIB=$RANLIB
   # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_RANLIB"; then
@@ -4502,24 +4678,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_RANLIB="ranlib"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 if test -n "$ac_ct_RANLIB"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
 $as_echo "$ac_ct_RANLIB" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -4528,7 +4704,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -4539,110 +4715,19 @@ else
 fi
   # :)
 
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if test "${ac_cv_path_install+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in
-  ./ | .// | /cC/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
-	  if test $ac_prog = install &&
-	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # AIX install.  It has an incompatible calling convention.
-	    :
-	  elif test $ac_prog = install &&
-	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # program-specific install script used by HP pwplus--don't use.
-	    :
-	  else
-	    rm -rf conftest.one conftest.two conftest.dir
-	    echo one > conftest.one
-	    echo two > conftest.two
-	    mkdir conftest.dir
-	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
-	      test -s conftest.one && test -s conftest.two &&
-	      test -s conftest.dir/conftest.one &&
-	      test -s conftest.dir/conftest.two
-	    then
-	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-	      break 3
-	    fi
-	  fi
-	fi
-      done
-    done
-    ;;
-esac
 
-done
-IFS=$as_save_IFS
 
-rm -rf conftest.one conftest.two conftest.dir
 
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    INSTALL=$ac_install_sh
-  fi
-fi
-{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-
-{ $as_echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5
 $as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
     # Check whether --enable-maintainer-mode was given.
-if test "${enable_maintainer_mode+set}" = set; then
+if test "${enable_maintainer_mode+set}" = set; then :
   enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
 else
   USE_MAINTAINER_MODE=no
 fi
 
-  { $as_echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5
 $as_echo "$USE_MAINTAINER_MODE" >&6; }
    if test $USE_MAINTAINER_MODE = yes; then
   MAINTAINER_MODE_TRUE=
@@ -4672,26 +4757,22 @@ GC_CFLAGS=${gc_cflags}
 
 case $enable_embed_check in
 no) ;;
-*) { { $as_echo "$as_me:$LINENO: error: This module is now part of 'mono' and cannot be built as a stand-alone module any longer." >&5
-$as_echo "$as_me: error: This module is now part of 'mono' and cannot be built as a stand-alone module any longer." >&2;}
-   { (exit 1); exit 1; }; } ;;
+*) as_fn_error "This module is now part of 'mono' and cannot be built as a stand-alone module any longer." "$LINENO" 5 ;;
 esac
 
 THREADS=$with_libgc_threads
 
 # Check whether --enable-win32-dllmain was given.
-if test "${enable_win32_dllmain+set}" = set; then
+if test "${enable_win32_dllmain+set}" = set; then :
   enableval=$enable_win32_dllmain;
 fi
 
 
 # Check whether --enable-parallel-mark was given.
-if test "${enable_parallel_mark+set}" = set; then
+if test "${enable_parallel_mark+set}" = set; then :
   enableval=$enable_parallel_mark; case "$THREADS" in
       no | none | single)
-	{ { $as_echo "$as_me:$LINENO: error: Parallel mark requires --enable-threads=x spec" >&5
-$as_echo "$as_me: error: Parallel mark requires --enable-threads=x spec" >&2;}
-   { (exit 1); exit 1; }; }
+	as_fn_error "Parallel mark requires --enable-threads=x spec" "$LINENO" 5
 	;;
     esac
 
@@ -4699,7 +4780,7 @@ fi
 
 
 # Check whether --enable-cplusplus was given.
-if test "${enable_cplusplus+set}" = set; then
+if test "${enable_cplusplus+set}" = set; then :
   enableval=$enable_cplusplus;
 fi
 
@@ -4716,72 +4797,46 @@ case "$THREADS" in
     THREADDLLIBS=-lpthread
     case "$host" in
      x86-*-linux* | ia64-*-linux* | i386-*-linux* | i486-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* | alpha*-*-linux* | s390*-*-linux* | sparc*-*-linux* | powerpc-*-linux*)
-	cat >>confdefs.h <<\_ACEOF
-#define GC_LINUX_THREADS 1
-_ACEOF
+	$as_echo "#define GC_LINUX_THREADS 1" >>confdefs.h
 
-	cat >>confdefs.h <<\_ACEOF
-#define _REENTRANT 1
-_ACEOF
+	$as_echo "#define _REENTRANT 1" >>confdefs.h
 
         if test "${enable_parallel_mark}" = yes; then
-	  cat >>confdefs.h <<\_ACEOF
-#define PARALLEL_MARK 1
-_ACEOF
+	  $as_echo "#define PARALLEL_MARK 1" >>confdefs.h
 
 	fi
-	cat >>confdefs.h <<\_ACEOF
-#define THREAD_LOCAL_ALLOC 1
-_ACEOF
+	$as_echo "#define THREAD_LOCAL_ALLOC 1" >>confdefs.h
 
 	;;
      *-*-linux*)
-	cat >>confdefs.h <<\_ACEOF
-#define GC_LINUX_THREADS 1
-_ACEOF
+	$as_echo "#define GC_LINUX_THREADS 1" >>confdefs.h
 
-	cat >>confdefs.h <<\_ACEOF
-#define _REENTRANT 1
-_ACEOF
+	$as_echo "#define _REENTRANT 1" >>confdefs.h
 
 	;;
      *-*-aix*)
-	cat >>confdefs.h <<\_ACEOF
-#define GC_AIX_THREADS 1
-_ACEOF
+	$as_echo "#define GC_AIX_THREADS 1" >>confdefs.h
 
-	cat >>confdefs.h <<\_ACEOF
-#define _REENTRANT 1
-_ACEOF
+	$as_echo "#define _REENTRANT 1" >>confdefs.h
 
 	;;
      *-*-hpux*)
-	{ $as_echo "$as_me:$LINENO: WARNING: \"Only HP/UX 11 threads are supported.\"" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"Only HP/UX 11 threads are supported.\"" >&5
 $as_echo "$as_me: WARNING: \"Only HP/UX 11 threads are supported.\"" >&2;}
-	cat >>confdefs.h <<\_ACEOF
-#define GC_HPUX_THREADS 1
-_ACEOF
+	$as_echo "#define GC_HPUX_THREADS 1" >>confdefs.h
 
-	cat >>confdefs.h <<\_ACEOF
-#define _POSIX_C_SOURCE 199506L
-_ACEOF
+	$as_echo "#define _POSIX_C_SOURCE 199506L" >>confdefs.h
 
 	if test "${enable_parallel_mark}" = yes; then
-	  cat >>confdefs.h <<\_ACEOF
-#define PARALLEL_MARK 1
-_ACEOF
+	  $as_echo "#define PARALLEL_MARK 1" >>confdefs.h
 
 	fi
-	cat >>confdefs.h <<\_ACEOF
-#define THREAD_LOCAL_ALLOC 1
-_ACEOF
+	$as_echo "#define THREAD_LOCAL_ALLOC 1" >>confdefs.h
 
 	THREADDLLIBS="-lpthread -lrt"
 	;;
       *-*-freebsd*)
-	cat >>confdefs.h <<\_ACEOF
-#define GC_FREEBSD_THREADS 1
-_ACEOF
+	$as_echo "#define GC_FREEBSD_THREADS 1" >>confdefs.h
 
 	if test "x$PTHREAD_CFLAGS" != "x"; then
 		INCLUDES="$INCLUDES $PTHREAD_CFLAGS"
@@ -4793,72 +4848,46 @@ _ACEOF
 	fi
 	;;
      *-*-solaris*)
-	cat >>confdefs.h <<\_ACEOF
-#define GC_SOLARIS_THREADS 1
-_ACEOF
+	$as_echo "#define GC_SOLARIS_THREADS 1" >>confdefs.h
 
-	cat >>confdefs.h <<\_ACEOF
-#define GC_SOLARIS_PTHREADS 1
-_ACEOF
+	$as_echo "#define GC_SOLARIS_PTHREADS 1" >>confdefs.h
 
 	;;
      *-*-irix*)
-	cat >>confdefs.h <<\_ACEOF
-#define GC_IRIX_THREADS 1
-_ACEOF
+	$as_echo "#define GC_IRIX_THREADS 1" >>confdefs.h
 
 	;;
      *-*-cygwin*)
-	cat >>confdefs.h <<\_ACEOF
-#define GC_WIN32_THREADS 1
-_ACEOF
+	$as_echo "#define GC_WIN32_THREADS 1" >>confdefs.h
 
 	;;
      *-*-darwin*)
-	cat >>confdefs.h <<\_ACEOF
-#define GC_DARWIN_THREADS 1
-_ACEOF
+	$as_echo "#define GC_DARWIN_THREADS 1" >>confdefs.h
 
-	cat >>confdefs.h <<\_ACEOF
-#define THREAD_LOCAL_ALLOC 1
-_ACEOF
+	$as_echo "#define THREAD_LOCAL_ALLOC 1" >>confdefs.h
 
 	if test "${enable_parallel_mark}" = yes; then
-	  cat >>confdefs.h <<\_ACEOF
-#define PARALLEL_MARK 1
-_ACEOF
+	  $as_echo "#define PARALLEL_MARK 1" >>confdefs.h
 
 	fi
 	;;
      *-*-netbsd*)
-	cat >>confdefs.h <<\_ACEOF
-#define GC_NETBSD_THREADS 1
-_ACEOF
+	$as_echo "#define GC_NETBSD_THREADS 1" >>confdefs.h
 
 	if test "${enable_parallel_mark}" = yes; then
-	  cat >>confdefs.h <<\_ACEOF
-#define PARALLEL_MARK 1
-_ACEOF
+	  $as_echo "#define PARALLEL_MARK 1" >>confdefs.h
 
 	fi
-	cat >>confdefs.h <<\_ACEOF
-#define THREAD_LOCAL_ALLOC 1
-_ACEOF
+	$as_echo "#define THREAD_LOCAL_ALLOC 1" >>confdefs.h
 
 	;;
      *-*-osf*)
-	cat >>confdefs.h <<\_ACEOF
-#define GC_OSF1_THREADS 1
-_ACEOF
+	$as_echo "#define GC_OSF1_THREADS 1" >>confdefs.h
 
         if test "${enable_parallel_mark}" = yes; then
-	  cat >>confdefs.h <<\_ACEOF
-#define PARALLEL_MARK 1
-_ACEOF
+	  $as_echo "#define PARALLEL_MARK 1" >>confdefs.h
 
-	  cat >>confdefs.h <<\_ACEOF
-#define THREAD_LOCAL_ALLOC 1
-_ACEOF
+	  $as_echo "#define THREAD_LOCAL_ALLOC 1" >>confdefs.h
 
 	  # May want to enable it in other cases, too.
 	  # Measurements havent yet been done.
@@ -4867,51 +4896,35 @@ _ACEOF
 	THREADDLLIBS="-lpthread -lrt"
 	;;
       *)
-	{ { $as_echo "$as_me:$LINENO: error: \"Pthreads not supported by the GC on this platform.\"" >&5
-$as_echo "$as_me: error: \"Pthreads not supported by the GC on this platform.\"" >&2;}
-   { (exit 1); exit 1; }; }
+	as_fn_error "\"Pthreads not supported by the GC on this platform.\"" "$LINENO" 5
 	;;
     esac
     ;;
  win32)
-    cat >>confdefs.h <<\_ACEOF
-#define GC_WIN32_THREADS 1
-_ACEOF
+    $as_echo "#define GC_WIN32_THREADS 1" >>confdefs.h
 
-        cat >>confdefs.h <<\_ACEOF
-#define NO_GETENV 1
-_ACEOF
+        $as_echo "#define NO_GETENV 1" >>confdefs.h
 
 	if test "${enable_win32_dllmain}" = yes; then
-	   cat >>confdefs.h <<\_ACEOF
-#define GC_INSIDE_DLL 1
-_ACEOF
+	   $as_echo "#define GC_INSIDE_DLL 1" >>confdefs.h
 
 	fi
     ;;
  dgux386)
     THREADS=dgux386
-    { $as_echo "$as_me:$LINENO: result: $THREADDLLIBS" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $THREADDLLIBS" >&5
 $as_echo "$THREADDLLIBS" >&6; }
     # Use pthread GCC  switch
     THREADDLLIBS=-pthread
     if test "${enable_parallel_mark}" = yes; then
-        cat >>confdefs.h <<\_ACEOF
-#define PARALLEL_MARK 1
-_ACEOF
+        $as_echo "#define PARALLEL_MARK 1" >>confdefs.h
 
     fi
-    cat >>confdefs.h <<\_ACEOF
-#define THREAD_LOCAL_ALLOC 1
-_ACEOF
+    $as_echo "#define THREAD_LOCAL_ALLOC 1" >>confdefs.h
 
-    cat >>confdefs.h <<\_ACEOF
-#define GC_DGUX386_THREADS 1
-_ACEOF
+    $as_echo "#define GC_DGUX386_THREADS 1" >>confdefs.h
 
-    cat >>confdefs.h <<\_ACEOF
-#define DGUX_THREADS 1
-_ACEOF
+    $as_echo "#define DGUX_THREADS 1" >>confdefs.h
 
     # Enable _POSIX4A_DRAFT10_SOURCE with flag -pthread
     INCLUDES="-pthread $INCLUDES"
@@ -4919,24 +4932,16 @@ _ACEOF
  aix)
     THREADS=posix
     THREADDLLIBS=-lpthread
-    cat >>confdefs.h <<\_ACEOF
-#define GC_AIX_THREADS 1
-_ACEOF
+    $as_echo "#define GC_AIX_THREADS 1" >>confdefs.h
 
-    cat >>confdefs.h <<\_ACEOF
-#define _REENTRANT 1
-_ACEOF
+    $as_echo "#define _REENTRANT 1" >>confdefs.h
 
     ;;
  decosf1 | irix | mach | os2 | solaris | dce | vxworks)
-    { { $as_echo "$as_me:$LINENO: error: thread package $THREADS not yet supported" >&5
-$as_echo "$as_me: error: thread package $THREADS not yet supported" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "thread package $THREADS not yet supported" "$LINENO" 5
     ;;
  *)
-    { { $as_echo "$as_me:$LINENO: error: $THREADS is an unknown thread package" >&5
-$as_echo "$as_me: error: $THREADS is an unknown thread package" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "$THREADS is an unknown thread package" "$LINENO" 5
     ;;
 esac
 
@@ -4955,14 +4960,10 @@ else
 fi
 
 
-{ $as_echo "$as_me:$LINENO: checking for xlc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xlc" >&5
 $as_echo_n "checking for xlc... " >&6; }
 
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -4977,34 +4978,13 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   compiler_xlc=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	compiler_xlc=no
+  compiler_xlc=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $compiler_xlc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $compiler_xlc" >&5
 $as_echo "$compiler_xlc" >&6; }
  if test $compiler_xlc = yes; then
   COMPILER_XLC_TRUE=
@@ -5016,9 +4996,7 @@ fi
 
 if test $compiler_xlc = yes -a "$powerpc_darwin" = true; then
   # the darwin stack-frame-walking code is completely broken on xlc
-  cat >>confdefs.h <<\_ACEOF
-#define DARWIN_DONT_PARSE_STACK 1
-_ACEOF
+  $as_echo "#define DARWIN_DONT_PARSE_STACK 1" >>confdefs.h
 
 fi
 
@@ -5027,18 +5005,14 @@ fi
 case "$host" in
   *-*-darwin*) ;;
   *)
-    { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -5056,43 +5030,18 @@ return dlopen ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dl_dlopen=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_dl_dlopen=no
+  ac_cv_lib_dl_dlopen=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
   THREADDLLIBS="$THREADDLLIBS -ldl"
 fi
 
@@ -5107,7 +5056,7 @@ target_all=libgc.la
 TARGET_ECOS="no"
 
 # Check whether --with-ecos was given.
-if test "${with_ecos+set}" = set; then
+if test "${with_ecos+set}" = set; then :
   withval=$with_ecos; TARGET_ECOS="$with_ecos"
 
 fi
@@ -5122,9 +5071,7 @@ case "$TARGET_ECOS" in
    no)
       ;;
    *)
-      cat >>confdefs.h <<\_ACEOF
-#define ECOS 1
-_ACEOF
+      $as_echo "#define ECOS 1" >>confdefs.h
 
       CXXINCLUDES="-I${TARGET_ECOS}/include"
       addobjs="$addobjs ecos.lo"
@@ -5152,10 +5099,10 @@ fi
 
 # Configuration of shared libraries
 #
-{ $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
 $as_echo_n "checking whether to build shared libraries... " >&6; }
 # Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then
+if test "${enable_shared+set}" = set; then :
   enableval=$enable_shared; p=${PACKAGE-default}
     case $enableval in
     yes) enable_shared=yes ;;
@@ -5189,25 +5136,25 @@ fi
 case "$host" in
  alpha-*-openbsd*)
      enable_shared=no
-     { $as_echo "$as_me:$LINENO: result: no" >&5
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
      ;;
  *)
-     { $as_echo "$as_me:$LINENO: result: yes" >&5
+     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
      ;;
 esac
 
 # Configuration of machine-dependent code
 #
-{ $as_echo "$as_me:$LINENO: checking which machine-dependent code should be used" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking which machine-dependent code should be used" >&5
 $as_echo_n "checking which machine-dependent code should be used... " >&6; }
 machdep=
 case "$host" in
  alpha-*-openbsd*)
     machdep="alpha_mach_dep.lo"
     if test x"${ac_cv_lib_dl_dlopen}" != xyes ; then
-       { $as_echo "$as_me:$LINENO: WARNING: OpenBSD/Alpha without dlopen(). Shared library support is disabled" >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: OpenBSD/Alpha without dlopen(). Shared library support is disabled" >&5
 $as_echo "$as_me: WARNING: OpenBSD/Alpha without dlopen(). Shared library support is disabled" >&2;}
     fi
     ;;
@@ -5215,20 +5162,14 @@ $as_echo "$as_me: WARNING: OpenBSD/Alpha without dlopen(). Shared library suppor
     machdep="alpha_mach_dep.lo"
     ;;
  i?86-*-solaris2.[89] | i?86-*-solaris2.1?)
-    cat >>confdefs.h <<\_ACEOF
-#define SOLARIS25_PROC_VDB_BUG_FIXED 1
-_ACEOF
+    $as_echo "#define SOLARIS25_PROC_VDB_BUG_FIXED 1" >>confdefs.h
 
     ;;
  mipstx39-*-elf*)
     machdep="mips_ultrix_mach_dep.lo"
-    cat >>confdefs.h <<\_ACEOF
-#define STACKBASE __stackbase
-_ACEOF
+    $as_echo "#define STACKBASE __stackbase" >>confdefs.h
 
-    cat >>confdefs.h <<\_ACEOF
-#define DATASTART_IS_ETEXT 1
-_ACEOF
+    $as_echo "#define DATASTART_IS_ETEXT 1" >>confdefs.h
 
     ;;
  mips-dec-ultrix*)
@@ -5240,9 +5181,7 @@ _ACEOF
     ;;
  mips-*-*)
     machdep="mips_sgi_mach_dep.lo"
-    cat >>confdefs.h <<\_ACEOF
-#define NO_EXECUTE_PERMISSION 1
-_ACEOF
+    $as_echo "#define NO_EXECUTE_PERMISSION 1" >>confdefs.h
 
     ;;
  sparc-*-netbsd*)
@@ -5250,9 +5189,7 @@ _ACEOF
     ;;
  sparc-sun-solaris2.3)
     machdep="sparc_mach_dep.lo"
-    cat >>confdefs.h <<\_ACEOF
-#define SUNOS53_SHARED_LIB 1
-_ACEOF
+    $as_echo "#define SUNOS53_SHARED_LIB 1" >>confdefs.h
 
     ;;
  sparc*-sun-solaris2.*)
@@ -5263,7 +5200,7 @@ _ACEOF
     ;;
 esac
 if test x"$machdep" = x; then
-{ $as_echo "$as_me:$LINENO: result: $machdep" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $machdep" >&5
 $as_echo "$machdep" >&6; }
    machdep="mach_dep.lo"
 fi
@@ -5275,7 +5212,7 @@ addobjs="$addobjs $machdep"
 
 case `pwd` in
   *\ * | *\	*)
-    { $as_echo "$as_me:$LINENO: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
 $as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
 esac
 
@@ -5298,9 +5235,9 @@ macro_revision='1.3012'
 
 ltmain="$ac_aux_dir/ltmain.sh"
 
-{ $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
 $as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if test "${ac_cv_path_SED+set}" = set; then
+if test "${ac_cv_path_SED+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
             ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
@@ -5308,7 +5245,7 @@ else
        ac_script="$ac_script$as_nl$ac_script"
      done
      echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
-     $as_unset ac_script || ac_script=
+     { ac_script=; unset ac_script;}
      if test -z "$SED"; then
   ac_path_SED_found=false
   # Loop through the user's path and test for each of PROGNAME-LIST
@@ -5317,7 +5254,7 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_prog in sed gsed; do
+    for ac_prog in sed gsed; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
       { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
@@ -5337,7 +5274,7 @@ case `"$ac_path_SED" --version 2>&1` in
     $as_echo '' >> "conftest.nl"
     "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
     if test $ac_count -gt ${ac_path_SED_max-0}; then
       # Best one so far, save it but keep looking for a better one
       ac_cv_path_SED="$ac_path_SED"
@@ -5352,19 +5289,17 @@ esac
       $ac_path_SED_found && break 3
     done
   done
-done
+  done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_SED"; then
-    { { $as_echo "$as_me:$LINENO: error: no acceptable sed could be found in \$PATH" >&5
-$as_echo "$as_me: error: no acceptable sed could be found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "no acceptable sed could be found in \$PATH" "$LINENO" 5
   fi
 else
   ac_cv_path_SED=$SED
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
 $as_echo "$ac_cv_path_SED" >&6; }
  SED="$ac_cv_path_SED"
   rm -f conftest.sed
@@ -5382,9 +5317,9 @@ Xsed="$SED -e 1s/^X//"
 
 
 
-{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
 $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then
+if test "${ac_cv_path_GREP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$GREP"; then
@@ -5395,7 +5330,7 @@ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_prog in grep ggrep; do
+    for ac_prog in grep ggrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
       { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
@@ -5415,7 +5350,7 @@ case `"$ac_path_GREP" --version 2>&1` in
     $as_echo 'GREP' >> "conftest.nl"
     "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
     if test $ac_count -gt ${ac_path_GREP_max-0}; then
       # Best one so far, save it but keep looking for a better one
       ac_cv_path_GREP="$ac_path_GREP"
@@ -5430,26 +5365,24 @@ esac
       $ac_path_GREP_found && break 3
     done
   done
-done
+  done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_GREP"; then
-    { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
   fi
 else
   ac_cv_path_GREP=$GREP
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
 $as_echo "$ac_cv_path_GREP" >&6; }
  GREP="$ac_cv_path_GREP"
 
 
-{ $as_echo "$as_me:$LINENO: checking for egrep" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
 $as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then
+if test "${ac_cv_path_EGREP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
@@ -5463,7 +5396,7 @@ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_prog in egrep; do
+    for ac_prog in egrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
       { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
@@ -5483,7 +5416,7 @@ case `"$ac_path_EGREP" --version 2>&1` in
     $as_echo 'EGREP' >> "conftest.nl"
     "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
     if test $ac_count -gt ${ac_path_EGREP_max-0}; then
       # Best one so far, save it but keep looking for a better one
       ac_cv_path_EGREP="$ac_path_EGREP"
@@ -5498,12 +5431,10 @@ esac
       $ac_path_EGREP_found && break 3
     done
   done
-done
+  done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_EGREP"; then
-    { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
   fi
 else
   ac_cv_path_EGREP=$EGREP
@@ -5511,14 +5442,14 @@ fi
 
    fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
 $as_echo "$ac_cv_path_EGREP" >&6; }
  EGREP="$ac_cv_path_EGREP"
 
 
-{ $as_echo "$as_me:$LINENO: checking for fgrep" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
 $as_echo_n "checking for fgrep... " >&6; }
-if test "${ac_cv_path_FGREP+set}" = set; then
+if test "${ac_cv_path_FGREP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
@@ -5532,7 +5463,7 @@ for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_prog in fgrep; do
+    for ac_prog in fgrep; do
     for ac_exec_ext in '' $ac_executable_extensions; do
       ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
       { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
@@ -5552,7 +5483,7 @@ case `"$ac_path_FGREP" --version 2>&1` in
     $as_echo 'FGREP' >> "conftest.nl"
     "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    ac_count=`expr $ac_count + 1`
+    as_fn_arith $ac_count + 1 && ac_count=$as_val
     if test $ac_count -gt ${ac_path_FGREP_max-0}; then
       # Best one so far, save it but keep looking for a better one
       ac_cv_path_FGREP="$ac_path_FGREP"
@@ -5567,12 +5498,10 @@ esac
       $ac_path_FGREP_found && break 3
     done
   done
-done
+  done
 IFS=$as_save_IFS
   if test -z "$ac_cv_path_FGREP"; then
-    { { $as_echo "$as_me:$LINENO: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-$as_echo "$as_me: error: no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
   fi
 else
   ac_cv_path_FGREP=$FGREP
@@ -5580,7 +5509,7 @@ fi
 
    fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_FGREP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
 $as_echo "$ac_cv_path_FGREP" >&6; }
  FGREP="$ac_cv_path_FGREP"
 
@@ -5606,7 +5535,7 @@ test -z "$GREP" && GREP=grep
 
 
 # Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
+if test "${with_gnu_ld+set}" = set; then :
   withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
 else
   with_gnu_ld=no
@@ -5615,7 +5544,7 @@ fi
 ac_prog=ld
 if test "$GCC" = yes; then
   # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
 $as_echo_n "checking for ld used by $CC... " >&6; }
   case $host in
   *-*-mingw*)
@@ -5645,13 +5574,13 @@ $as_echo_n "checking for ld used by $CC... " >&6; }
     ;;
   esac
 elif test "$with_gnu_ld" = yes; then
-  { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
 $as_echo_n "checking for GNU ld... " >&6; }
 else
-  { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
 $as_echo_n "checking for non-GNU ld... " >&6; }
 fi
-if test "${lt_cv_path_LD+set}" = set; then
+if test "${lt_cv_path_LD+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
@@ -5682,18 +5611,16 @@ fi
 
 LD="$lt_cv_path_LD"
 if test -n "$LD"; then
-  { $as_echo "$as_me:$LINENO: result: $LD" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
 $as_echo "$LD" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
-test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
-{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then
+if test "${lt_cv_prog_gnu_ld+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   # I'd rather use --version here, but apparently some GNU lds only accept -v.
@@ -5706,7 +5633,7 @@ case `$LD -v 2>&1 </dev/null` in
   ;;
 esac
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
 $as_echo "$lt_cv_prog_gnu_ld" >&6; }
 with_gnu_ld=$lt_cv_prog_gnu_ld
 
@@ -5718,9 +5645,9 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
 
 
 
-{ $as_echo "$as_me:$LINENO: checking for BSD- or MS-compatible name lister (nm)" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
 $as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if test "${lt_cv_path_NM+set}" = set; then
+if test "${lt_cv_path_NM+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$NM"; then
@@ -5767,7 +5694,7 @@ else
   : ${lt_cv_path_NM=no}
 fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
 $as_echo "$lt_cv_path_NM" >&6; }
 if test "$lt_cv_path_NM" != "no"; then
   NM="$lt_cv_path_NM"
@@ -5778,9 +5705,9 @@ else
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DUMPBIN+set}" = set; then
+if test "${ac_cv_prog_DUMPBIN+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$DUMPBIN"; then
@@ -5791,24 +5718,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 DUMPBIN=$ac_cv_prog_DUMPBIN
 if test -n "$DUMPBIN"; then
-  { $as_echo "$as_me:$LINENO: result: $DUMPBIN" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
 $as_echo "$DUMPBIN" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -5822,9 +5749,9 @@ if test -z "$DUMPBIN"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then
+if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_DUMPBIN"; then
@@ -5835,24 +5762,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
 if test -n "$ac_ct_DUMPBIN"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_DUMPBIN" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
 $as_echo "$ac_ct_DUMPBIN" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -5865,7 +5792,7 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -5885,44 +5812,44 @@ test -z "$NM" && NM=nm
 
 
 
-{ $as_echo "$as_me:$LINENO: checking the name lister ($NM) interface" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
 $as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if test "${lt_cv_nm_interface+set}" = set; then
+if test "${lt_cv_nm_interface+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_nm_interface="BSD nm"
   echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:5895: $ac_compile\"" >&5)
+  (eval echo "\"\$as_me:5822: $ac_compile\"" >&5)
   (eval "$ac_compile" 2>conftest.err)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5898: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+  (eval echo "\"\$as_me:5825: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
   (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
   cat conftest.err >&5
-  (eval echo "\"\$as_me:5901: output\"" >&5)
+  (eval echo "\"\$as_me:5828: output\"" >&5)
   cat conftest.out >&5
   if $GREP 'External.*some_variable' conftest.out > /dev/null; then
     lt_cv_nm_interface="MS dumpbin"
   fi
   rm -f conftest*
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_nm_interface" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
 $as_echo "$lt_cv_nm_interface" >&6; }
 
-{ $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
 $as_echo_n "checking whether ln -s works... " >&6; }
 LN_S=$as_ln_s
 if test "$LN_S" = "ln -s"; then
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
 $as_echo "no, using $LN_S" >&6; }
 fi
 
 # find the maximum length of command line arguments
-{ $as_echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
 $as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if test "${lt_cv_sys_max_cmd_len+set}" = set; then
+if test "${lt_cv_sys_max_cmd_len+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
     i=0
@@ -6040,10 +5967,10 @@ else
 fi
 
 if test -n $lt_cv_sys_max_cmd_len ; then
-  { $as_echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
 $as_echo "$lt_cv_sys_max_cmd_len" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: none" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
 $as_echo "none" >&6; }
 fi
 max_cmd_len=$lt_cv_sys_max_cmd_len
@@ -6057,7 +5984,7 @@ max_cmd_len=$lt_cv_sys_max_cmd_len
 : ${MV="mv -f"}
 : ${RM="rm -f"}
 
-{ $as_echo "$as_me:$LINENO: checking whether the shell understands some XSI constructs" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
 $as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
 # Try some XSI features
 xsi_shell=no
@@ -6067,17 +5994,17 @@ xsi_shell=no
     && eval 'test $(( 1 + 1 )) -eq 2 \
     && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
   && xsi_shell=yes
-{ $as_echo "$as_me:$LINENO: result: $xsi_shell" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
 $as_echo "$xsi_shell" >&6; }
 
 
-{ $as_echo "$as_me:$LINENO: checking whether the shell understands \"+=\"" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
 $as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
 lt_shell_append=no
 ( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
     >/dev/null 2>&1 \
   && lt_shell_append=yes
-{ $as_echo "$as_me:$LINENO: result: $lt_shell_append" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
 $as_echo "$lt_shell_append" >&6; }
 
 
@@ -6112,14 +6039,14 @@ esac
 
 
 
-{ $as_echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
 $as_echo_n "checking for $LD option to reload object files... " >&6; }
-if test "${lt_cv_ld_reload_flag+set}" = set; then
+if test "${lt_cv_ld_reload_flag+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_ld_reload_flag='-r'
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
 $as_echo "$lt_cv_ld_reload_flag" >&6; }
 reload_flag=$lt_cv_ld_reload_flag
 case $reload_flag in
@@ -6148,9 +6075,9 @@ esac
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
 set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OBJDUMP+set}" = set; then
+if test "${ac_cv_prog_OBJDUMP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OBJDUMP"; then
@@ -6161,24 +6088,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 OBJDUMP=$ac_cv_prog_OBJDUMP
 if test -n "$OBJDUMP"; then
-  { $as_echo "$as_me:$LINENO: result: $OBJDUMP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
 $as_echo "$OBJDUMP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6188,9 +6115,9 @@ if test -z "$ac_cv_prog_OBJDUMP"; then
   ac_ct_OBJDUMP=$OBJDUMP
   # Extract the first word of "objdump", so it can be a program name with args.
 set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then
+if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OBJDUMP"; then
@@ -6201,24 +6128,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_OBJDUMP="objdump"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
 if test -n "$ac_ct_OBJDUMP"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
 $as_echo "$ac_ct_OBJDUMP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6227,7 +6154,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -6247,9 +6174,9 @@ test -z "$OBJDUMP" && OBJDUMP=objdump
 
 
 
-{ $as_echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
 $as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if test "${lt_cv_deplibs_check_method+set}" = set; then
+if test "${lt_cv_deplibs_check_method+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_file_magic_cmd='$MAGIC_CMD'
@@ -6368,7 +6295,7 @@ linux* | k*bsd*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-netbsd*)
+netbsd* | netbsdelf*-gnu)
   if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
   else
@@ -6443,7 +6370,7 @@ tpf*)
 esac
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
 $as_echo "$lt_cv_deplibs_check_method" >&6; }
 file_magic_cmd=$lt_cv_file_magic_cmd
 deplibs_check_method=$lt_cv_deplibs_check_method
@@ -6463,9 +6390,9 @@ test -z "$deplibs_check_method" && deplibs_check_method=unknown
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_AR+set}" = set; then
+if test "${ac_cv_prog_AR+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$AR"; then
@@ -6476,24 +6403,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AR="${ac_tool_prefix}ar"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 AR=$ac_cv_prog_AR
 if test -n "$AR"; then
-  { $as_echo "$as_me:$LINENO: result: $AR" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
 $as_echo "$AR" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6503,9 +6430,9 @@ if test -z "$ac_cv_prog_AR"; then
   ac_ct_AR=$AR
   # Extract the first word of "ar", so it can be a program name with args.
 set dummy ar; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
+if test "${ac_cv_prog_ac_ct_AR+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_AR"; then
@@ -6516,24 +6443,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_AR="ar"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_AR=$ac_cv_prog_ac_ct_AR
 if test -n "$ac_ct_AR"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
 $as_echo "$ac_ct_AR" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6542,7 +6469,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -6568,9 +6495,9 @@ test -z "$AR_FLAGS" && AR_FLAGS=cru
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_STRIP+set}" = set; then
+if test "${ac_cv_prog_STRIP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$STRIP"; then
@@ -6581,24 +6508,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 STRIP=$ac_cv_prog_STRIP
 if test -n "$STRIP"; then
-  { $as_echo "$as_me:$LINENO: result: $STRIP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
 $as_echo "$STRIP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6608,9 +6535,9 @@ if test -z "$ac_cv_prog_STRIP"; then
   ac_ct_STRIP=$STRIP
   # Extract the first word of "strip", so it can be a program name with args.
 set dummy strip; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
+if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
@@ -6621,24 +6548,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
 $as_echo "$ac_ct_STRIP" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6647,7 +6574,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -6667,9 +6594,9 @@ test -z "$STRIP" && STRIP=:
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_RANLIB+set}" = set; then
+if test "${ac_cv_prog_RANLIB+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$RANLIB"; then
@@ -6680,24 +6607,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 RANLIB=$ac_cv_prog_RANLIB
 if test -n "$RANLIB"; then
-  { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
 $as_echo "$RANLIB" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6707,9 +6634,9 @@ if test -z "$ac_cv_prog_RANLIB"; then
   ac_ct_RANLIB=$RANLIB
   # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
+if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_RANLIB"; then
@@ -6720,24 +6647,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_RANLIB="ranlib"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 if test -n "$ac_ct_RANLIB"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
 $as_echo "$ac_ct_RANLIB" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -6746,7 +6673,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -6824,9 +6751,9 @@ compiler=$CC
 
 
 # Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
 $as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
+if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -6942,18 +6869,18 @@ void nm_test_func(void){}
 int main(){nm_test_var='a';nm_test_func();return(0);}
 _LT_EOF
 
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
     # Now try to grab the symbols.
     nlist=conftest.nm
-    if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
+    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5
   (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s "$nlist"; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s "$nlist"; then
       # Try sorting and uniquifying the output.
       if sort "$nlist" | uniq > "$nlist"T; then
 	mv -f "$nlist"T "$nlist"
@@ -7006,11 +6933,11 @@ _LT_EOF
 	  lt_save_CFLAGS="$CFLAGS"
 	  LIBS="conftstm.$ac_objext"
 	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
-	  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext}; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest${ac_exeext}; then
 	    pipe_works=yes
 	  fi
 	  LIBS="$lt_save_LIBS"
@@ -7044,10 +6971,10 @@ if test -z "$lt_cv_sys_global_symbol_pipe"; then
   lt_cv_sys_global_symbol_to_cdecl=
 fi
 if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  { $as_echo "$as_me:$LINENO: result: failed" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
 $as_echo "failed" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: ok" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
 $as_echo "ok" >&6; }
 fi
 
@@ -7073,7 +7000,7 @@ fi
 
 
 # Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then
+if test "${enable_libtool_lock+set}" = set; then :
   enableval=$enable_libtool_lock;
 fi
 
@@ -7085,11 +7012,11 @@ case $host in
 ia64-*-hpux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
     case `/usr/bin/file conftest.$ac_objext` in
       *ELF-32*)
 	HPUX_IA64_MODE="32"
@@ -7103,12 +7030,12 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 7106 "configure"' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  echo '#line 7033 "configure"' > conftest.$ac_ext
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
     if test "$lt_cv_prog_gnu_ld" = yes; then
       case `/usr/bin/file conftest.$ac_objext` in
 	*32-bit*)
@@ -7142,11 +7069,11 @@ x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
 s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
     case `/usr/bin/file conftest.o` in
       *32-bit*)
 	case $host in
@@ -7195,9 +7122,9 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
   SAVE_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS -belf"
-  { $as_echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
 $as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if test "${lt_cv_cc_needs_belf+set}" = set; then
+if test "${lt_cv_cc_needs_belf+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_ext=c
@@ -7206,11 +7133,7 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-     cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -7221,38 +7144,13 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   lt_cv_cc_needs_belf=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	lt_cv_cc_needs_belf=no
+  lt_cv_cc_needs_belf=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
      ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -7260,7 +7158,7 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
 $as_echo "$lt_cv_cc_needs_belf" >&6; }
   if test x"$lt_cv_cc_needs_belf" != x"yes"; then
     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
@@ -7270,11 +7168,11 @@ $as_echo "$lt_cv_cc_needs_belf" >&6; }
 sparc*-*solaris*)
   # Find out which ABI we are using.
   echo 'int i;' > conftest.$ac_ext
-  if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
@@ -7300,9 +7198,9 @@ need_locks="$enable_libtool_lock"
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
 set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_DSYMUTIL+set}" = set; then
+if test "${ac_cv_prog_DSYMUTIL+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$DSYMUTIL"; then
@@ -7313,24 +7211,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 DSYMUTIL=$ac_cv_prog_DSYMUTIL
 if test -n "$DSYMUTIL"; then
-  { $as_echo "$as_me:$LINENO: result: $DSYMUTIL" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
 $as_echo "$DSYMUTIL" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7340,9 +7238,9 @@ if test -z "$ac_cv_prog_DSYMUTIL"; then
   ac_ct_DSYMUTIL=$DSYMUTIL
   # Extract the first word of "dsymutil", so it can be a program name with args.
 set dummy dsymutil; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then
+if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_DSYMUTIL"; then
@@ -7353,24 +7251,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
 if test -n "$ac_ct_DSYMUTIL"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
 $as_echo "$ac_ct_DSYMUTIL" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7379,7 +7277,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -7392,9 +7290,9 @@ fi
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
 set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_NMEDIT+set}" = set; then
+if test "${ac_cv_prog_NMEDIT+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$NMEDIT"; then
@@ -7405,24 +7303,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 NMEDIT=$ac_cv_prog_NMEDIT
 if test -n "$NMEDIT"; then
-  { $as_echo "$as_me:$LINENO: result: $NMEDIT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
 $as_echo "$NMEDIT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7432,9 +7330,9 @@ if test -z "$ac_cv_prog_NMEDIT"; then
   ac_ct_NMEDIT=$NMEDIT
   # Extract the first word of "nmedit", so it can be a program name with args.
 set dummy nmedit; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then
+if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_NMEDIT"; then
@@ -7445,24 +7343,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_NMEDIT="nmedit"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
 if test -n "$ac_ct_NMEDIT"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
 $as_echo "$ac_ct_NMEDIT" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7471,7 +7369,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -7484,9 +7382,9 @@ fi
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
 set dummy ${ac_tool_prefix}lipo; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_LIPO+set}" = set; then
+if test "${ac_cv_prog_LIPO+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$LIPO"; then
@@ -7497,24 +7395,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 LIPO=$ac_cv_prog_LIPO
 if test -n "$LIPO"; then
-  { $as_echo "$as_me:$LINENO: result: $LIPO" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
 $as_echo "$LIPO" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7524,9 +7422,9 @@ if test -z "$ac_cv_prog_LIPO"; then
   ac_ct_LIPO=$LIPO
   # Extract the first word of "lipo", so it can be a program name with args.
 set dummy lipo; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then
+if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_LIPO"; then
@@ -7537,24 +7435,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_LIPO="lipo"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
 if test -n "$ac_ct_LIPO"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_LIPO" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
 $as_echo "$ac_ct_LIPO" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7563,7 +7461,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -7576,9 +7474,9 @@ fi
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
 set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL+set}" = set; then
+if test "${ac_cv_prog_OTOOL+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OTOOL"; then
@@ -7589,24 +7487,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 OTOOL=$ac_cv_prog_OTOOL
 if test -n "$OTOOL"; then
-  { $as_echo "$as_me:$LINENO: result: $OTOOL" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
 $as_echo "$OTOOL" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7616,9 +7514,9 @@ if test -z "$ac_cv_prog_OTOOL"; then
   ac_ct_OTOOL=$OTOOL
   # Extract the first word of "otool", so it can be a program name with args.
 set dummy otool; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then
+if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OTOOL"; then
@@ -7629,24 +7527,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_OTOOL="otool"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
 if test -n "$ac_ct_OTOOL"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
 $as_echo "$ac_ct_OTOOL" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7655,7 +7553,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -7668,9 +7566,9 @@ fi
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
 set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_OTOOL64+set}" = set; then
+if test "${ac_cv_prog_OTOOL64+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$OTOOL64"; then
@@ -7681,24 +7579,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 OTOOL64=$ac_cv_prog_OTOOL64
 if test -n "$OTOOL64"; then
-  { $as_echo "$as_me:$LINENO: result: $OTOOL64" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
 $as_echo "$OTOOL64" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7708,9 +7606,9 @@ if test -z "$ac_cv_prog_OTOOL64"; then
   ac_ct_OTOOL64=$OTOOL64
   # Extract the first word of "otool64", so it can be a program name with args.
 set dummy otool64; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then
+if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OTOOL64"; then
@@ -7721,24 +7619,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_OTOOL64="otool64"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
 if test -n "$ac_ct_OTOOL64"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_OTOOL64" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
 $as_echo "$ac_ct_OTOOL64" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -7747,7 +7645,7 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -7783,9 +7681,9 @@ fi
 
 
 
-    { $as_echo "$as_me:$LINENO: checking for -single_module linker flag" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
 $as_echo_n "checking for -single_module linker flag... " >&6; }
-if test "${lt_cv_apple_cc_single_mod+set}" = set; then
+if test "${lt_cv_apple_cc_single_mod+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_apple_cc_single_mod=no
@@ -7810,22 +7708,18 @@ else
 	rm -f conftest.*
       fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
 $as_echo "$lt_cv_apple_cc_single_mod" >&6; }
-    { $as_echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
 $as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if test "${lt_cv_ld_exported_symbols_list+set}" = set; then
+if test "${lt_cv_ld_exported_symbols_list+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_ld_exported_symbols_list=no
       save_LDFLAGS=$LDFLAGS
       echo "_main" > conftest.sym
       LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -7836,42 +7730,17 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   lt_cv_ld_exported_symbols_list=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	lt_cv_ld_exported_symbols_list=no
+  lt_cv_ld_exported_symbols_list=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 	LDFLAGS="$save_LDFLAGS"
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
 $as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
     case $host_os in
     rhapsody* | darwin1.[012])
@@ -7913,14 +7782,14 @@ ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
 $as_echo_n "checking how to run the C preprocessor... " >&6; }
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 fi
 if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then
+  if test "${ac_cv_prog_CPP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
       # Double quotes because CPP needs to be expanded
@@ -7935,11 +7804,7 @@ do
   # <limits.h> exists even on freestanding compilers.
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifdef __STDC__
 # include <limits.h>
@@ -7948,78 +7813,34 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
 		     Syntax error
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_cpp "$LINENO"; then :
 
+else
   # Broken: fails on valid input.
 continue
 fi
-
 rm -f conftest.err conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
+if ac_fn_c_try_cpp "$LINENO"; then :
   # Broken: success on invalid input.
 continue
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
   # Passes both tests.
 ac_preproc_ok=:
 break
 fi
-
 rm -f conftest.err conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
+if $ac_preproc_ok; then :
   break
 fi
 
@@ -8031,7 +7852,7 @@ fi
 else
   ac_cv_prog_CPP=$CPP
 fi
-{ $as_echo "$as_me:$LINENO: result: $CPP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
 $as_echo "$CPP" >&6; }
 ac_preproc_ok=false
 for ac_c_preproc_warn_flag in '' yes
@@ -8042,11 +7863,7 @@ do
   # <limits.h> exists even on freestanding compilers.
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifdef __STDC__
 # include <limits.h>
@@ -8055,87 +7872,40 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
 		     Syntax error
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_cpp "$LINENO"; then :
 
+else
   # Broken: fails on valid input.
 continue
 fi
-
 rm -f conftest.err conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
+if ac_fn_c_try_cpp "$LINENO"; then :
   # Broken: success on invalid input.
 continue
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
   # Passes both tests.
 ac_preproc_ok=:
 break
 fi
-
 rm -f conftest.err conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
+if $ac_preproc_ok; then :
+
 else
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&5
-$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }; }
+as_fn_error "C preprocessor \"$CPP\" fails sanity check
+See \`config.log' for more details." "$LINENO" 5; }
 fi
 
 ac_ext=c
@@ -8145,16 +7915,12 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
 $as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then
+if test "${ac_cv_header_stdc+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
 #include <stdarg.h>
@@ -8169,48 +7935,23 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_c_try_compile "$LINENO"; then :
   ac_cv_header_stdc=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_header_stdc=no
+  ac_cv_header_stdc=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 if test $ac_cv_header_stdc = yes; then
   # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <string.h>
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then
-  :
+  $EGREP "memchr" >/dev/null 2>&1; then :
+
 else
   ac_cv_header_stdc=no
 fi
@@ -8220,18 +7961,14 @@ fi
 
 if test $ac_cv_header_stdc = yes; then
   # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then
-  :
+  $EGREP "free" >/dev/null 2>&1; then :
+
 else
   ac_cv_header_stdc=no
 fi
@@ -8241,14 +7978,10 @@ fi
 
 if test $ac_cv_header_stdc = yes; then
   # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then
+  if test "$cross_compiling" = yes; then :
   :
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ctype.h>
 #include <stdlib.h>
@@ -8275,118 +8008,34 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
-  { (case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; }; then
-  :
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_c_try_run "$LINENO"; then :
 
-( exit $ac_status )
-ac_cv_header_stdc=no
+else
+  ac_cv_header_stdc=no
 fi
-rm -rf conftest.dSYM
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
+  conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
 
-
 fi
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
 $as_echo "$ac_cv_header_stdc" >&6; }
 if test $ac_cv_header_stdc = yes; then
 
-cat >>confdefs.h <<\_ACEOF
-#define STDC_HEADERS 1
-_ACEOF
+$as_echo "#define STDC_HEADERS 1" >>confdefs.h
 
 fi
 
 # On IRIX 5.3, sys/types and inttypes.h are conflicting.
-
-
-
-
-
-
-
-
-
 for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
 		  inttypes.h stdint.h unistd.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_ac_Header=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
+"
+eval as_val=\$$as_ac_Header
+   if test "x$as_val" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
 #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
@@ -8396,62 +8045,13 @@ fi
 done
 
 
-
 for ac_header in dlfcn.h
-do
-as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
-$as_echo_n "checking for $ac_header... " >&6; }
-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-
-#include <$ac_header>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  eval "$as_ac_Header=yes"
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	eval "$as_ac_Header=no"
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-ac_res=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-as_val=`eval 'as_val=${'$as_ac_Header'}
-		 $as_echo "$as_val"'`
-   if test "x$as_val" = x""yes; then
+do :
+  ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
+"
+if test "x$ac_cv_header_dlfcn_h" = x""yes; then :
   cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define HAVE_DLFCN_H 1
 _ACEOF
 
 fi
@@ -8474,9 +8074,9 @@ if test -z "$CXX"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CXX+set}" = set; then
+if test "${ac_cv_prog_CXX+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CXX"; then
@@ -8487,24 +8087,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 CXX=$ac_cv_prog_CXX
 if test -n "$CXX"; then
-  { $as_echo "$as_me:$LINENO: result: $CXX" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
 $as_echo "$CXX" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8518,9 +8118,9 @@ if test -z "$CXX"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
+if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CXX"; then
@@ -8531,24 +8131,24 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  for ac_exec_ext in '' $ac_executable_extensions; do
+    for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CXX="$ac_prog"
-    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
-done
+  done
 IFS=$as_save_IFS
 
 fi
 fi
 ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
 if test -n "$ac_ct_CXX"; then
-  { $as_echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
 $as_echo "$ac_ct_CXX" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -8561,7 +8161,7 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
@@ -8572,53 +8172,36 @@ fi
   fi
 fi
 # Provide some information about the compiler.
-$as_echo "$as_me:$LINENO: checking for C++ compiler version" >&5
+$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
 set X $ac_compile
 ac_compiler=$2
-{ (ac_try="$ac_compiler --version >&5"
+for ac_option in --version -v -V -qversion; do
+  { { ac_try="$ac_compiler $ac_option >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler --version >&5") 2>&5
+eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
+$as_echo "$ac_try_echo"; } >&5
+  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -v >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -v >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
-{ (ac_try="$ac_compiler -V >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compiler -V >&5") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
+  if test -s conftest.err; then
+    sed '10a\
+... rest of stderr output deleted ...
+         10q' conftest.err >conftest.er1
+    cat conftest.er1 >&5
+    rm -f conftest.er1 conftest.err
+  fi
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
+done
 
-{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
 $as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
+if test "${ac_cv_cxx_compiler_gnu+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -8632,37 +8215,16 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_cxx_try_compile "$LINENO"; then :
   ac_compiler_gnu=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_compiler_gnu=no
+  ac_compiler_gnu=no
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5
 $as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
 if test $ac_compiler_gnu = yes; then
   GXX=yes
@@ -8671,20 +8233,16 @@ else
 fi
 ac_test_CXXFLAGS=${CXXFLAGS+set}
 ac_save_CXXFLAGS=$CXXFLAGS
-{ $as_echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
 $as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if test "${ac_cv_prog_cxx_g+set}" = set; then
+if test "${ac_cv_prog_cxx_g+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_cxx_werror_flag=$ac_cxx_werror_flag
    ac_cxx_werror_flag=yes
    ac_cv_prog_cxx_g=no
    CXXFLAGS="-g"
-   cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -8695,35 +8253,11 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_cxx_try_compile "$LINENO"; then :
   ac_cv_prog_cxx_g=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	CXXFLAGS=""
-      cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  CXXFLAGS=""
+      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -8734,36 +8268,12 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_cxx_try_compile "$LINENO"; then :
 
-	ac_cxx_werror_flag=$ac_save_cxx_werror_flag
+else
+  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
 	 CXXFLAGS="-g"
-	 cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -8774,42 +8284,17 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
+if ac_fn_cxx_try_compile "$LINENO"; then :
   ac_cv_prog_cxx_g=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    ac_cxx_werror_flag=$ac_save_cxx_werror_flag
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5
 $as_echo "$ac_cv_prog_cxx_g" >&6; }
 if test "$ac_test_CXXFLAGS" = set; then
   CXXFLAGS=$ac_save_CXXFLAGS
@@ -8834,9 +8319,9 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 depcc="$CXX"  am_compiler_list=
 
-{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5
 $as_echo_n "checking dependency style of $depcc... " >&6; }
-if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then
+if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
@@ -8862,6 +8347,11 @@ else
   if test "$am_compiler_list" = ""; then
      am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp`
   fi
+  am__universal=false
+  case " $depcc " in #(
+     *\ -arch\ *\ -arch\ *) am__universal=true ;;
+     esac
+
   for depmode in $am_compiler_list; do
     # Setup a source with many dependencies, because some compilers
     # like to wrap large dependency lists on column 80 (with \), and
@@ -8879,7 +8369,17 @@ else
     done
     echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
 
+    # We check with `-c' and `-o' for the sake of the "dashmstdout"
+    # mode.  It turns out that the SunPro C++ compiler does not properly
+    # handle `-M -o', and we need to detect this.  Also, some Intel
+    # versions had trouble with output in subdirs
+    am__obj=sub/conftest.${OBJEXT-o}
+    am__minus_obj="-o $am__obj"
     case $depmode in
+    gcc)
+      # This depmode causes a compiler race in universal mode.
+      test "$am__universal" = false || continue
+      ;;
     nosideeffect)
       # after this tag, mechanisms are not by side-effect, so they'll
       # only be used when explicitly requested
@@ -8889,19 +8389,23 @@ else
 	break
       fi
       ;;
+    msvisualcpp | msvcmsys)
+      # This compiler won't grok `-c -o', but also, the minuso test has
+      # not run yet.  These depmodes are late enough in the game, and
+      # so weak that their functioning should not be impacted.
+      am__obj=conftest.${OBJEXT-o}
+      am__minus_obj=
+      ;;
     none) break ;;
     esac
-    # We check with `-c' and `-o' for the sake of the "dashmstdout"
-    # mode.  It turns out that the SunPro C++ compiler does not properly
-    # handle `-M -o', and we need to detect this.
     if depmode=$depmode \
-       source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
+       source=sub/conftest.c object=$am__obj \
        depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
-       $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
+       $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \
          >/dev/null 2>conftest.err &&
        grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
        grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
-       grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
+       grep $am__obj sub/conftest.Po > /dev/null 2>&1 &&
        ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
       # icc doesn't choke on unknown options, it will just issue warnings
       # or remarks (even with -Werror).  So we grep stderr for any message
@@ -8925,7 +8429,7 @@ else
 fi
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5
 $as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
 
@@ -8948,10 +8452,10 @@ ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ $as_echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
 $as_echo_n "checking how to run the C++ preprocessor... " >&6; }
 if test -z "$CXXCPP"; then
-  if test "${ac_cv_prog_CXXCPP+set}" = set; then
+  if test "${ac_cv_prog_CXXCPP+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
       # Double quotes because CXXCPP needs to be expanded
@@ -8966,11 +8470,7 @@ do
   # <limits.h> exists even on freestanding compilers.
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifdef __STDC__
 # include <limits.h>
@@ -8979,78 +8479,34 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
 		     Syntax error
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_cxx_try_cpp "$LINENO"; then :
 
+else
   # Broken: fails on valid input.
 continue
 fi
-
 rm -f conftest.err conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
+if ac_fn_cxx_try_cpp "$LINENO"; then :
   # Broken: success on invalid input.
 continue
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
   # Passes both tests.
 ac_preproc_ok=:
 break
 fi
-
 rm -f conftest.err conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
+if $ac_preproc_ok; then :
   break
 fi
 
@@ -9062,7 +8518,7 @@ fi
 else
   ac_cv_prog_CXXCPP=$CXXCPP
 fi
-{ $as_echo "$as_me:$LINENO: result: $CXXCPP" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
 $as_echo "$CXXCPP" >&6; }
 ac_preproc_ok=false
 for ac_cxx_preproc_warn_flag in '' yes
@@ -9073,11 +8529,7 @@ do
   # <limits.h> exists even on freestanding compilers.
   # On the NeXT, cc -E runs the code through the compiler's parser,
   # not just through cpp. "Syntax error" is here to catch this case.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #ifdef __STDC__
 # include <limits.h>
@@ -9086,81 +8538,37 @@ cat >>conftest.$ac_ext <<_ACEOF
 #endif
 		     Syntax error
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  :
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
+if ac_fn_cxx_try_cpp "$LINENO"; then :
 
+else
   # Broken: fails on valid input.
 continue
 fi
-
 rm -f conftest.err conftest.$ac_ext
 
   # OK, works on sane cases.  Now check whether nonexistent headers
   # can be detected and how.
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <ac_nonexistent.h>
 _ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
+if ac_fn_cxx_try_cpp "$LINENO"; then :
   # Broken: success on invalid input.
 continue
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
   # Passes both tests.
 ac_preproc_ok=:
 break
 fi
-
 rm -f conftest.err conftest.$ac_ext
 
 done
 # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
 rm -f conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then
-  :
+if $ac_preproc_ok; then :
+
 else
-  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 _lt_caught_CXX_error=yes; }
 fi
@@ -9191,7 +8599,7 @@ fi
 
 
   # Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then
+if test "${enable_static+set}" = set; then :
   enableval=$enable_static; p=${PACKAGE-default}
     case $enableval in
     yes) enable_static=yes ;;
@@ -9223,7 +8631,7 @@ fi
 
 
 # Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then
+if test "${with_pic+set}" = set; then :
   withval=$with_pic; pic_mode="$withval"
 else
   pic_mode=default
@@ -9239,7 +8647,7 @@ test -z "$pic_mode" && pic_mode=default
 
 
   # Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then
+if test "${enable_fast_install+set}" = set; then :
   enableval=$enable_fast_install; p=${PACKAGE-default}
     case $enableval in
     yes) enable_fast_install=yes ;;
@@ -9320,9 +8728,9 @@ if test -n "${ZSH_VERSION+set}" ; then
    setopt NO_GLOB_SUBST
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for objdir" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
 $as_echo_n "checking for objdir... " >&6; }
-if test "${lt_cv_objdir+set}" = set; then
+if test "${lt_cv_objdir+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   rm -f .libs 2>/dev/null
@@ -9335,7 +8743,7 @@ else
 fi
 rmdir .libs 2>/dev/null
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
 $as_echo "$lt_cv_objdir" >&6; }
 objdir=$lt_cv_objdir
 
@@ -9428,9 +8836,9 @@ test -z "$MAGIC_CMD" && MAGIC_CMD=file
 case $deplibs_check_method in
 file_magic*)
   if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    { $as_echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
 $as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $MAGIC_CMD in
@@ -9481,10 +8889,10 @@ fi
 
 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
 if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
 $as_echo "$MAGIC_CMD" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -9494,9 +8902,9 @@ fi
 
 if test -z "$lt_cv_path_MAGIC_CMD"; then
   if test -n "$ac_tool_prefix"; then
-    { $as_echo "$as_me:$LINENO: checking for file" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
 $as_echo_n "checking for file... " >&6; }
-if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
+if test "${lt_cv_path_MAGIC_CMD+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   case $MAGIC_CMD in
@@ -9547,10 +8955,10 @@ fi
 
 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
 if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
 $as_echo "$MAGIC_CMD" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
 
@@ -9627,9 +9035,9 @@ lt_prog_compiler_no_builtin_flag=
 if test "$GCC" = yes; then
   lt_prog_compiler_no_builtin_flag=' -fno-builtin'
 
-  { $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
 $as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
+if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_rtti_exceptions=no
@@ -9645,11 +9053,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9648: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9056: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:9652: \$? = $ac_status" >&5
+   echo "$as_me:9060: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -9662,7 +9070,7 @@ else
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
 $as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
 
 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
@@ -9682,7 +9090,7 @@ fi
 lt_prog_compiler_pic=
 lt_prog_compiler_static=
 
-{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
 $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 
   if test "$GCC" = yes; then
@@ -9954,7 +9362,7 @@ case $host_os in
     lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
     ;;
 esac
-{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5
 $as_echo "$lt_prog_compiler_pic" >&6; }
 
 
@@ -9966,9 +9374,9 @@ $as_echo "$lt_prog_compiler_pic" >&6; }
 # Check to make sure the PIC flag actually works.
 #
 if test -n "$lt_prog_compiler_pic"; then
-  { $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if test "${lt_cv_prog_compiler_pic_works+set}" = set; then
+if test "${lt_cv_prog_compiler_pic_works+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_pic_works=no
@@ -9984,11 +9392,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:9987: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9395: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:9991: \$? = $ac_status" >&5
+   echo "$as_me:9399: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -10001,7 +9409,7 @@ else
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
 $as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
 
 if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
@@ -10025,9 +9433,9 @@ fi
 # Check to make sure the static flag actually works.
 #
 wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if test "${lt_cv_prog_compiler_static_works+set}" = set; then
+if test "${lt_cv_prog_compiler_static_works+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_static_works=no
@@ -10053,7 +9461,7 @@ else
    LDFLAGS="$save_LDFLAGS"
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
 $as_echo "$lt_cv_prog_compiler_static_works" >&6; }
 
 if test x"$lt_cv_prog_compiler_static_works" = xyes; then
@@ -10068,9 +9476,9 @@ fi
 
 
 
-  { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o=no
@@ -10089,11 +9497,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:10092: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9500: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:10096: \$? = $ac_status" >&5
+   echo "$as_me:9504: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -10115,7 +9523,7 @@ else
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
 $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 
 
@@ -10123,9 +9531,9 @@ $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 
 
 
-  { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o+set}" = set; then
+if test "${lt_cv_prog_compiler_c_o+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o=no
@@ -10144,11 +9552,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:10147: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:9555: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:10151: \$? = $ac_status" >&5
+   echo "$as_me:9559: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -10170,7 +9578,7 @@ else
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
 $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 
 
@@ -10179,7 +9587,7 @@ $as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 hard_links="nottested"
 if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
   # do not overwrite the value of need_locks provided by the user
-  { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
 $as_echo_n "checking if we can lock with hard links... " >&6; }
   hard_links=yes
   $RM conftest*
@@ -10187,10 +9595,10 @@ $as_echo_n "checking if we can lock with hard links... " >&6; }
   touch conftest.a
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { $as_echo "$as_me:$LINENO: result: $hard_links" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
 $as_echo "$hard_links" >&6; }
   if test "$hard_links" = no; then
-    { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
     need_locks=warn
   fi
@@ -10203,7 +9611,7 @@ fi
 
 
 
-  { $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
 
   runpath_var=
@@ -10263,6 +9671,9 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
   openbsd*)
     with_gnu_ld=no
     ;;
+  linux* | k*bsd*-gnu)
+    link_all_deplibs=no
+    ;;
   esac
 
   ld_shlibs=yes
@@ -10445,7 +9856,7 @@ _LT_EOF
       fi
       ;;
 
-    netbsd*)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
 	wlarc=
@@ -10620,6 +10031,7 @@ _LT_EOF
 	if test "$aix_use_runtimelinking" = yes; then
 	  shared_flag="$shared_flag "'${wl}-G'
 	fi
+	link_all_deplibs=no
       else
 	# not using gcc
 	if test "$host_cpu" = ia64; then
@@ -10645,11 +10057,7 @@ _LT_EOF
 	allow_undefined_flag='-berok'
         # Determine the default libpath from the value encoded in an
         # empty executable.
-        cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -10660,27 +10068,7 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -10694,16 +10082,9 @@ aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpat
 if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
         hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
@@ -10716,11 +10097,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	else
 	 # Determine the default libpath from the value encoded in an
 	 # empty executable.
-	 cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -10731,27 +10108,7 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -10765,16 +10122,9 @@ aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpat
 if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
 	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
@@ -10986,42 +10336,16 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	# implicitly export all symbols.
         save_LDFLAGS="$LDFLAGS"
         LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-        cat >conftest.$ac_ext <<_ACEOF
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
 int foo(void) {}
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
 
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
         LDFLAGS="$save_LDFLAGS"
       else
 	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib'
@@ -11034,7 +10358,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       link_all_deplibs=yes
       ;;
 
-    netbsd*)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
       else
@@ -11277,7 +10601,7 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
     fi
   fi
 
-{ $as_echo "$as_me:$LINENO: result: $ld_shlibs" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
 $as_echo "$ld_shlibs" >&6; }
 test "$ld_shlibs" = no && can_build_shared=no
 
@@ -11314,16 +10638,16 @@ x|xyes)
       # Test whether the compiler implicitly links with -lc since on some
       # systems, -lgcc has to come before -lc. If gcc already passes -lc
       # to ld, don't add -lc before -lgcc.
-      { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
       $RM conftest*
       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+      if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } 2>conftest.err; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } 2>conftest.err; then
         soname=conftest
         lib=conftest
         libobjs=conftest.$ac_objext
@@ -11337,11 +10661,11 @@ $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
         libname=conftest
         lt_save_allow_undefined_flag=$allow_undefined_flag
         allow_undefined_flag=
-        if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+        if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
   (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
         then
 	  archive_cmds_need_lc=no
         else
@@ -11352,7 +10676,7 @@ $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
         cat conftest.err 1>&5
       fi
       $RM conftest*
-      { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5
 $as_echo "$archive_cmds_need_lc" >&6; }
       ;;
     esac
@@ -11516,7 +10840,7 @@ esac
 
 
 
-  { $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
 $as_echo_n "checking dynamic linker characteristics... " >&6; }
 
 if test "$GCC" = yes; then
@@ -11938,11 +11262,7 @@ linux* | k*bsd*-gnu)
   save_libdir=$libdir
   eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
        LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -11953,41 +11273,13 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
+if ac_fn_c_try_link "$LINENO"; then :
+  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
   shlibpath_overrides_runpath=yes
 fi
-
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   LDFLAGS=$save_LDFLAGS
   libdir=$save_libdir
 
@@ -12011,6 +11303,18 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
   dynamic_linker='GNU/Linux ld.so'
   ;;
 
+netbsdelf*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='NetBSD ld.elf_so'
+  ;;
+
 netbsd*)
   version_type=sunos
   need_lib_prefix=no
@@ -12199,7 +11503,7 @@ uts4*)
   dynamic_linker=no
   ;;
 esac
-{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
 $as_echo "$dynamic_linker" >&6; }
 test "$dynamic_linker" = no && can_build_shared=no
 
@@ -12301,7 +11605,7 @@ fi
 
 
 
-  { $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
 $as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action=
 if test -n "$hardcode_libdir_flag_spec" ||
@@ -12326,7 +11630,7 @@ else
   # directories.
   hardcode_action=unsupported
 fi
-{ $as_echo "$as_me:$LINENO: result: $hardcode_action" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
 $as_echo "$hardcode_action" >&6; }
 
 if test "$hardcode_action" = relink ||
@@ -12371,18 +11675,14 @@ else
 
   darwin*)
   # if libdl is installed we need to link against it
-    { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -12400,43 +11700,18 @@ return dlopen ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dl_dlopen=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_dl_dlopen=no
+  ac_cv_lib_dl_dlopen=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
 
@@ -12449,106 +11724,18 @@ fi
     ;;
 
   *)
-    { $as_echo "$as_me:$LINENO: checking for shl_load" >&5
-$as_echo_n "checking for shl_load... " >&6; }
-if test "${ac_cv_func_shl_load+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define shl_load to an innocuous variant, in case <limits.h> declares shl_load.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define shl_load innocuous_shl_load
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char shl_load (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef shl_load
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_shl_load || defined __stub___shl_load
-choke me
-#endif
-
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_shl_load=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func_shl_load=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-$as_echo "$ac_cv_func_shl_load" >&6; }
-if test "x$ac_cv_func_shl_load" = x""yes; then
+    ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
+if test "x$ac_cv_func_shl_load" = x""yes; then :
   lt_cv_dlopen="shl_load"
 else
-  { $as_echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
 $as_echo_n "checking for shl_load in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_shl_load+set}" = set; then
+if test "${ac_cv_lib_dld_shl_load+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -12566,145 +11753,32 @@ return shl_load ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dld_shl_load=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_dld_shl_load=no
+  ac_cv_lib_dld_shl_load=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
 $as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = x""yes; then
+if test "x$ac_cv_lib_dld_shl_load" = x""yes; then :
   lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
 else
-  { $as_echo "$as_me:$LINENO: checking for dlopen" >&5
-$as_echo_n "checking for dlopen... " >&6; }
-if test "${ac_cv_func_dlopen+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-/* Define dlopen to an innocuous variant, in case <limits.h> declares dlopen.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define dlopen innocuous_dlopen
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char dlopen (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef dlopen
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_dlopen || defined __stub___dlopen
-choke me
-#endif
-
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  ac_cv_func_dlopen=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_func_dlopen=no
-fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-$as_echo "$ac_cv_func_dlopen" >&6; }
-if test "x$ac_cv_func_dlopen" = x""yes; then
+  ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
+if test "x$ac_cv_func_dlopen" = x""yes; then :
   lt_cv_dlopen="dlopen"
 else
-  { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
 $as_echo_n "checking for dlopen in -ldl... " >&6; }
-if test "${ac_cv_lib_dl_dlopen+set}" = set; then
+if test "${ac_cv_lib_dl_dlopen+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldl  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -12722,57 +11796,28 @@ return dlopen ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dl_dlopen=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_dl_dlopen=no
+  ac_cv_lib_dl_dlopen=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
 $as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
-  { $as_echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
 $as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if test "${ac_cv_lib_svld_dlopen+set}" = set; then
+if test "${ac_cv_lib_svld_dlopen+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lsvld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -12790,57 +11835,28 @@ return dlopen ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_svld_dlopen=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_svld_dlopen=no
+  ac_cv_lib_svld_dlopen=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
 $as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = x""yes; then
+if test "x$ac_cv_lib_svld_dlopen" = x""yes; then :
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
 else
-  { $as_echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
 $as_echo_n "checking for dld_link in -ldld... " >&6; }
-if test "${ac_cv_lib_dld_dld_link+set}" = set; then
+if test "${ac_cv_lib_dld_dld_link+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldld  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -12858,43 +11874,18 @@ return dld_link ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_dld_dld_link=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_dld_dld_link=no
+  ac_cv_lib_dld_dld_link=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
 $as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = x""yes; then
+if test "x$ac_cv_lib_dld_dld_link" = x""yes; then :
   lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
 fi
 
@@ -12933,9 +11924,9 @@ fi
     save_LIBS="$LIBS"
     LIBS="$lt_cv_dlopen_libs $LIBS"
 
-    { $as_echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
 $as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self+set}" = set; then
+if test "${lt_cv_dlopen_self+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   	  if test "$cross_compiling" = yes; then :
@@ -12944,7 +11935,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 12947 "configure"
+#line 11938 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -13003,11 +11994,11 @@ int main ()
   return status;
 }
 _LT_EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
     case x$lt_status in
@@ -13024,14 +12015,14 @@ rm -fr conftest*
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
 $as_echo "$lt_cv_dlopen_self" >&6; }
 
     if test "x$lt_cv_dlopen_self" = xyes; then
       wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      { $as_echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
 $as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if test "${lt_cv_dlopen_self_static+set}" = set; then
+if test "${lt_cv_dlopen_self_static+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   	  if test "$cross_compiling" = yes; then :
@@ -13040,7 +12031,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 13043 "configure"
+#line 12034 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -13099,11 +12090,11 @@ int main ()
   return status;
 }
 _LT_EOF
-  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
+  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
     case x$lt_status in
@@ -13120,7 +12111,7 @@ rm -fr conftest*
 
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
 $as_echo "$lt_cv_dlopen_self_static" >&6; }
     fi
 
@@ -13159,12 +12150,12 @@ fi
 
 striplib=
 old_striplib=
-{ $as_echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
 $as_echo_n "checking whether stripping libraries is possible... " >&6; }
 if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
   test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
   test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { $as_echo "$as_me:$LINENO: result: yes" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
 else
 # FIXME - insert some real tests, host_os isn't really good enough
@@ -13173,15 +12164,15 @@ else
     if test -n "$STRIP" ; then
       striplib="$STRIP -x"
       old_striplib="$STRIP -S"
-      { $as_echo "$as_me:$LINENO: result: yes" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
     else
-      { $as_echo "$as_me:$LINENO: result: no" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
     fi
     ;;
   *)
-    { $as_echo "$as_me:$LINENO: result: no" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
     ;;
   esac
@@ -13199,12 +12190,12 @@ fi
 
 
   # Report which library types will actually be built
-  { $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
 $as_echo_n "checking if libtool supports shared libraries... " >&6; }
-  { $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
 $as_echo "$can_build_shared" >&6; }
 
-  { $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
 $as_echo_n "checking whether to build shared libraries... " >&6; }
   test "$can_build_shared" = "no" && enable_shared=no
 
@@ -13225,14 +12216,14 @@ $as_echo_n "checking whether to build shared libraries... " >&6; }
     fi
     ;;
   esac
-  { $as_echo "$as_me:$LINENO: result: $enable_shared" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
 $as_echo "$enable_shared" >&6; }
 
-  { $as_echo "$as_me:$LINENO: checking whether to build static libraries" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
 $as_echo_n "checking whether to build static libraries... " >&6; }
   # Make sure either enable_shared or enable_static is yes.
   test "$enable_shared" = yes || enable_static=yes
-  { $as_echo "$as_me:$LINENO: result: $enable_static" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
 $as_echo "$enable_static" >&6; }
 
 
@@ -13373,7 +12364,7 @@ cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
 
 
 # Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then
+if test "${with_gnu_ld+set}" = set; then :
   withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
 else
   with_gnu_ld=no
@@ -13382,7 +12373,7 @@ fi
 ac_prog=ld
 if test "$GCC" = yes; then
   # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:$LINENO: checking for ld used by $CC" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
 $as_echo_n "checking for ld used by $CC... " >&6; }
   case $host in
   *-*-mingw*)
@@ -13412,13 +12403,13 @@ $as_echo_n "checking for ld used by $CC... " >&6; }
     ;;
   esac
 elif test "$with_gnu_ld" = yes; then
-  { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
 $as_echo_n "checking for GNU ld... " >&6; }
 else
-  { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
 $as_echo_n "checking for non-GNU ld... " >&6; }
 fi
-if test "${lt_cv_path_LD+set}" = set; then
+if test "${lt_cv_path_LD+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
@@ -13449,18 +12440,16 @@ fi
 
 LD="$lt_cv_path_LD"
 if test -n "$LD"; then
-  { $as_echo "$as_me:$LINENO: result: $LD" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
 $as_echo "$LD" >&6; }
 else
-  { $as_echo "$as_me:$LINENO: result: no" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
 fi
-test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
-   { (exit 1); exit 1; }; }
-{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+test -z "$LD" && as_fn_error "no acceptable ld found in \$PATH" "$LINENO" 5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if test "${lt_cv_prog_gnu_ld+set}" = set; then
+if test "${lt_cv_prog_gnu_ld+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   # I'd rather use --version here, but apparently some GNU lds only accept -v.
@@ -13473,7 +12462,7 @@ case `$LD -v 2>&1 </dev/null` in
   ;;
 esac
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
 $as_echo "$lt_cv_prog_gnu_ld" >&6; }
 with_gnu_ld=$lt_cv_prog_gnu_ld
 
@@ -13528,7 +12517,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld
     fi
 
     # PORTME: fill in a description of your system's C++ link characteristics
-    { $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
     ld_shlibs_CXX=yes
     case $host_os in
@@ -13629,11 +12618,7 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
           allow_undefined_flag_CXX='-berok'
           # Determine the default libpath from the value encoded in an empty
           # executable.
-          cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+          cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -13644,27 +12629,7 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_cxx_try_link "$LINENO"; then :
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -13678,16 +12643,9 @@ aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpat
 if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
           hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
@@ -13701,11 +12659,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
           else
 	    # Determine the default libpath from the value encoded in an
 	    # empty executable.
-	    cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+	    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -13716,27 +12670,7 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_cxx_try_link "$LINENO"; then :
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -13750,16 +12684,9 @@ aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpat
 if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 
 	    hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
@@ -14503,7 +13430,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
         ;;
     esac
 
-    { $as_echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
 $as_echo "$ld_shlibs_CXX" >&6; }
     test "$ld_shlibs_CXX" = no && can_build_shared=no
 
@@ -14531,11 +13458,11 @@ private:
 };
 _LT_EOF
 
-if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }; then
   # Parse the compiler output and extract the necessary
   # objects, libraries and library flags.
 
@@ -14716,7 +13643,7 @@ fi
 lt_prog_compiler_pic_CXX=
 lt_prog_compiler_static_CXX=
 
-{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
 $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 
   # C++ specific cases for pic, static, wl, etc.
@@ -14936,7 +13863,7 @@ $as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 	    ;;
 	esac
 	;;
-      netbsd*)
+      netbsd* | netbsdelf*-gnu)
 	;;
       *qnx* | *nto*)
         # QNX uses GNU C++, but need to define -shared option too, otherwise
@@ -15033,7 +13960,7 @@ case $host_os in
     lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
     ;;
 esac
-{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5
 $as_echo "$lt_prog_compiler_pic_CXX" >&6; }
 
 
@@ -15042,9 +13969,9 @@ $as_echo "$lt_prog_compiler_pic_CXX" >&6; }
 # Check to make sure the PIC flag actually works.
 #
 if test -n "$lt_prog_compiler_pic_CXX"; then
-  { $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
 $as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
-if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then
+if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_pic_works_CXX=no
@@ -15060,11 +13987,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15063: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13990: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:15067: \$? = $ac_status" >&5
+   echo "$as_me:13994: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -15077,7 +14004,7 @@ else
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
 $as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
 
 if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
@@ -15098,9 +14025,9 @@ fi
 # Check to make sure the static flag actually works.
 #
 wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
-{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
 $as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then
+if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_static_works_CXX=no
@@ -15126,7 +14053,7 @@ else
    LDFLAGS="$save_LDFLAGS"
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_CXX" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5
 $as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }
 
 if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
@@ -15138,9 +14065,9 @@ fi
 
 
 
-    { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then
+if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o_CXX=no
@@ -15159,11 +14086,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15162: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14089: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:15166: \$? = $ac_status" >&5
+   echo "$as_me:14093: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -15185,14 +14112,14 @@ else
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
 
 
 
-    { $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
 $as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then
+if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o_CXX=no
@@ -15211,11 +14138,11 @@ else
    -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
    -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
    -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:15214: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14141: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:15218: \$? = $ac_status" >&5
+   echo "$as_me:14145: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -15237,7 +14164,7 @@ else
    $RM conftest*
 
 fi
-{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
 $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
 
 
@@ -15246,7 +14173,7 @@ $as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
 hard_links="nottested"
 if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
   # do not overwrite the value of need_locks provided by the user
-  { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
 $as_echo_n "checking if we can lock with hard links... " >&6; }
   hard_links=yes
   $RM conftest*
@@ -15254,10 +14181,10 @@ $as_echo_n "checking if we can lock with hard links... " >&6; }
   touch conftest.a
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { $as_echo "$as_me:$LINENO: result: $hard_links" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
 $as_echo "$hard_links" >&6; }
   if test "$hard_links" = no; then
-    { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
 $as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
     need_locks=warn
   fi
@@ -15267,7 +14194,7 @@ fi
 
 
 
-    { $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
 $as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
 
   export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
@@ -15287,13 +14214,16 @@ $as_echo_n "checking whether the $compiler linker ($LD) supports shared librarie
   cygwin* | mingw* | cegcc*)
     export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
   ;;
+  linux* | k*bsd*-gnu)
+    link_all_deplibs_CXX=no
+  ;;
   *)
     export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
   ;;
   esac
   exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
 
-{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
 $as_echo "$ld_shlibs_CXX" >&6; }
 test "$ld_shlibs_CXX" = no && can_build_shared=no
 
@@ -15321,16 +14251,16 @@ x|xyes)
       # Test whether the compiler implicitly links with -lc since on some
       # systems, -lgcc has to come before -lc. If gcc already passes -lc
       # to ld, don't add -lc before -lgcc.
-      { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
 $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
       $RM conftest*
       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
-      if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
+      if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } 2>conftest.err; then
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; } 2>conftest.err; then
         soname=conftest
         lib=conftest
         libobjs=conftest.$ac_objext
@@ -15344,11 +14274,11 @@ $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
         libname=conftest
         lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
         allow_undefined_flag_CXX=
-        if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\"") >&5
+        if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
   (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); }
+  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
+  test $ac_status = 0; }
         then
 	  archive_cmds_need_lc_CXX=no
         else
@@ -15359,7 +14289,7 @@ $as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
         cat conftest.err 1>&5
       fi
       $RM conftest*
-      { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5
 $as_echo "$archive_cmds_need_lc_CXX" >&6; }
       ;;
     esac
@@ -15430,7 +14360,7 @@ esac
 
 
 
-    { $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
 $as_echo_n "checking dynamic linker characteristics... " >&6; }
 
 library_names_spec=
@@ -15800,11 +14730,7 @@ linux* | k*bsd*-gnu)
   save_libdir=$libdir
   eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
        LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
-  cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -15815,41 +14741,13 @@ main ()
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
-  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then
+if ac_fn_cxx_try_link "$LINENO"; then :
+  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
   shlibpath_overrides_runpath=yes
 fi
-
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
   LDFLAGS=$save_LDFLAGS
   libdir=$save_libdir
 
@@ -15873,6 +14771,18 @@ rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
   dynamic_linker='GNU/Linux ld.so'
   ;;
 
+netbsdelf*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='NetBSD ld.elf_so'
+  ;;
+
 netbsd*)
   version_type=sunos
   need_lib_prefix=no
@@ -16061,7 +14971,7 @@ uts4*)
   dynamic_linker=no
   ;;
 esac
-{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
 $as_echo "$dynamic_linker" >&6; }
 test "$dynamic_linker" = no && can_build_shared=no
 
@@ -16112,7 +15022,7 @@ fi
 
 
 
-    { $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
 $as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action_CXX=
 if test -n "$hardcode_libdir_flag_spec_CXX" ||
@@ -16137,7 +15047,7 @@ else
   # directories.
   hardcode_action_CXX=unsupported
 fi
-{ $as_echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5
 $as_echo "$hardcode_action_CXX" >&6; }
 
 if test "$hardcode_action_CXX" = relink ||
@@ -16200,139 +15110,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 # Check for AViiON Machines running DGUX
 #
 ac_is_dgux=no
-if test "${ac_cv_header_sys_dg_sys_info_h+set}" = set; then
-  { $as_echo "$as_me:$LINENO: checking for sys/dg_sys_info.h" >&5
-$as_echo_n "checking for sys/dg_sys_info.h... " >&6; }
-if test "${ac_cv_header_sys_dg_sys_info_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_dg_sys_info_h" >&5
-$as_echo "$ac_cv_header_sys_dg_sys_info_h" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:$LINENO: checking sys/dg_sys_info.h usability" >&5
-$as_echo_n "checking sys/dg_sys_info.h usability... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-$ac_includes_default
-#include <sys/dg_sys_info.h>
-_ACEOF
-rm -f conftest.$ac_objext
-if { (ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_compile") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then
-  ac_header_compiler=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_header_compiler=no
-fi
-
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:$LINENO: checking sys/dg_sys_info.h presence" >&5
-$as_echo_n "checking sys/dg_sys_info.h presence... " >&6; }
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h.  */
-#include <sys/dg_sys_info.h>
-_ACEOF
-if { (ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } >/dev/null && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then
-  ac_header_preproc=yes
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-  ac_header_preproc=no
-fi
-
-rm -f conftest.err conftest.$ac_ext
-{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
-  yes:no: )
-    { $as_echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: sys/dg_sys_info.h: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: sys/dg_sys_info.h: proceeding with the compiler's result" >&2;}
-    ac_header_preproc=yes
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: sys/dg_sys_info.h: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: sys/dg_sys_info.h:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: sys/dg_sys_info.h: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: sys/dg_sys_info.h:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&5
-$as_echo "$as_me: WARNING: sys/dg_sys_info.h: proceeding with the preprocessor's result" >&2;}
-    { $as_echo "$as_me:$LINENO: WARNING: sys/dg_sys_info.h: in the future, the compiler will take precedence" >&5
-$as_echo "$as_me: WARNING: sys/dg_sys_info.h: in the future, the compiler will take precedence" >&2;}
-    ( cat <<\_ASBOX
-## -------------------------------- ##
-## Report this to Hans_Boehm at hp.com ##
-## -------------------------------- ##
-_ASBOX
-     ) | sed "s/^/$as_me: WARNING:     /" >&2
-    ;;
-esac
-{ $as_echo "$as_me:$LINENO: checking for sys/dg_sys_info.h" >&5
-$as_echo_n "checking for sys/dg_sys_info.h... " >&6; }
-if test "${ac_cv_header_sys_dg_sys_info_h+set}" = set; then
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_header_sys_dg_sys_info_h=$ac_header_preproc
-fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_sys_dg_sys_info_h" >&5
-$as_echo "$ac_cv_header_sys_dg_sys_info_h" >&6; }
-
-fi
-if test "x$ac_cv_header_sys_dg_sys_info_h" = x""yes; then
+ac_fn_c_check_header_mongrel "$LINENO" "sys/dg_sys_info.h" "ac_cv_header_sys_dg_sys_info_h" "$ac_includes_default"
+if test "x$ac_cv_header_sys_dg_sys_info_h" = x""yes; then :
   ac_is_dgux=yes;
 fi
 
@@ -16353,13 +15132,13 @@ fi
 
 
 # Check whether --with-target-subdir was given.
-if test "${with_target_subdir+set}" = set; then
+if test "${with_target_subdir+set}" = set; then :
   withval=$with_target_subdir;
 fi
 
 
 # Check whether --with-cross-host was given.
-if test "${with_cross_host+set}" = set; then
+if test "${with_cross_host+set}" = set; then :
   withval=$with_cross_host;
 fi
 
@@ -16375,17 +15154,17 @@ if false; then
 
 fi
 
-{ $as_echo "$as_me:$LINENO: checking for threads package to use" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for threads package to use" >&5
 $as_echo_n "checking for threads package to use... " >&6; }
-{ $as_echo "$as_me:$LINENO: result: $THREADS" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $THREADS" >&5
 $as_echo "$THREADS" >&6; }
 
-{ $as_echo "$as_me:$LINENO: checking whether Solaris gcc optimization fix is necessary" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether Solaris gcc optimization fix is necessary" >&5
 $as_echo_n "checking whether Solaris gcc optimization fix is necessary... " >&6; }
 case "$host" in
  *aix*)
     if test "$GCC" = yes; then
-       { $as_echo "$as_me:$LINENO: result: yes" >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
        new_CFLAGS=
        for i in $CFLAGS; do
@@ -16399,98 +15178,66 @@ $as_echo "yes" >&6; }
        done
        CFLAGS="$new_CFLAGS"
     else
-       { $as_echo "$as_me:$LINENO: result: no" >&5
+       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
     fi
     ;;
- *) { $as_echo "$as_me:$LINENO: result: no" >&5
+ *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; } ;;
 esac
 
 MY_CFLAGS="$CFLAGS"
 
 
-cat >>confdefs.h <<\_ACEOF
-#define SILENT 1
-_ACEOF
+$as_echo "#define SILENT 1" >>confdefs.h
 
-cat >>confdefs.h <<\_ACEOF
-#define NO_SIGNALS 1
-_ACEOF
+$as_echo "#define NO_SIGNALS 1" >>confdefs.h
 
-cat >>confdefs.h <<\_ACEOF
-#define NO_EXECUTE_PERMISSION 1
-_ACEOF
+$as_echo "#define NO_EXECUTE_PERMISSION 1" >>confdefs.h
 
 
-cat >>confdefs.h <<\_ACEOF
-#define JAVA_FINALIZATION 1
-_ACEOF
+$as_echo "#define JAVA_FINALIZATION 1" >>confdefs.h
 
-cat >>confdefs.h <<\_ACEOF
-#define GC_GCJ_SUPPORT 1
-_ACEOF
+$as_echo "#define GC_GCJ_SUPPORT 1" >>confdefs.h
 
-cat >>confdefs.h <<\_ACEOF
-#define ATOMIC_UNCOLLECTABLE 1
-_ACEOF
+$as_echo "#define ATOMIC_UNCOLLECTABLE 1" >>confdefs.h
 
 
 if test -n "${with_cross_host}"; then
-   cat >>confdefs.h <<\_ACEOF
-#define NO_SIGSET 1
-_ACEOF
+   $as_echo "#define NO_SIGSET 1" >>confdefs.h
 
-   cat >>confdefs.h <<\_ACEOF
-#define NO_CLOCK 1
-_ACEOF
+   $as_echo "#define NO_CLOCK 1" >>confdefs.h
 
-   cat >>confdefs.h <<\_ACEOF
-#define SMALL_CONFIG 1
-_ACEOF
+   $as_echo "#define SMALL_CONFIG 1" >>confdefs.h
 
-   cat >>confdefs.h <<\_ACEOF
-#define NO_DEBUGGING 1
-_ACEOF
+   $as_echo "#define NO_DEBUGGING 1" >>confdefs.h
 
 fi
 
 UNWINDLIBS=
 # Check whether --enable-full-debug was given.
-if test "${enable_full_debug+set}" = set; then
+if test "${enable_full_debug+set}" = set; then :
   enableval=$enable_full_debug;  if test "$enable_full_debug" = "yes"; then
-    { $as_echo "$as_me:$LINENO: WARNING: \"Should define GC_DEBUG and use debug alloc. in clients.\"" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"Should define GC_DEBUG and use debug alloc. in clients.\"" >&5
 $as_echo "$as_me: WARNING: \"Should define GC_DEBUG and use debug alloc. in clients.\"" >&2;}
-    cat >>confdefs.h <<\_ACEOF
-#define KEEP_BACK_PTRS 1
-_ACEOF
+    $as_echo "#define KEEP_BACK_PTRS 1" >>confdefs.h
 
-    cat >>confdefs.h <<\_ACEOF
-#define DBG_HDRS_ALL 1
-_ACEOF
+    $as_echo "#define DBG_HDRS_ALL 1" >>confdefs.h
 
     case $host in
       ia64-*-linux* )
-	cat >>confdefs.h <<\_ACEOF
-#define MAKE_BACK_GRAPH 1
-_ACEOF
+	$as_echo "#define MAKE_BACK_GRAPH 1" >>confdefs.h
 
-	cat >>confdefs.h <<\_ACEOF
-#define SAVE_CALL_COUNT 8
-_ACEOF
+	$as_echo "#define SAVE_CALL_COUNT 8" >>confdefs.h
 
-        { $as_echo "$as_me:$LINENO: checking for backtrace in -lunwind" >&5
+        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for backtrace in -lunwind" >&5
 $as_echo_n "checking for backtrace in -lunwind... " >&6; }
-if test "${ac_cv_lib_unwind_backtrace+set}" = set; then
+if test "${ac_cv_lib_unwind_backtrace+set}" = set; then :
   $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lunwind  $LIBS"
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h.  */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 /* Override any GCC internal prototype to avoid an error.
@@ -16508,71 +15255,38 @@ return backtrace ();
   return 0;
 }
 _ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
-$as_echo "$ac_try_echo") >&5
-  (eval "$ac_link") 2>conftest.er1
-  ac_status=$?
-  grep -v '^ *+' conftest.er1 >conftest.err
-  rm -f conftest.er1
-  cat conftest.err >&5
-  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
-  (exit $ac_status); } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then
+if ac_fn_c_try_link "$LINENO"; then :
   ac_cv_lib_unwind_backtrace=yes
 else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_cv_lib_unwind_backtrace=no
+  ac_cv_lib_unwind_backtrace=no
 fi
-
-rm -rf conftest.dSYM
-rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
-      conftest$ac_exeext conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext \
+    conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_unwind_backtrace" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_unwind_backtrace" >&5
 $as_echo "$ac_cv_lib_unwind_backtrace" >&6; }
-if test "x$ac_cv_lib_unwind_backtrace" = x""yes; then
+if test "x$ac_cv_lib_unwind_backtrace" = x""yes; then :
 
-	  cat >>confdefs.h <<\_ACEOF
-#define GC_HAVE_BUILTIN_BACKTRACE 1
-_ACEOF
+	  $as_echo "#define GC_HAVE_BUILTIN_BACKTRACE 1" >>confdefs.h
 
 	  UNWINDLIBS=-lunwind
-	  { $as_echo "$as_me:$LINENO: WARNING: \"Client code may need to link against libunwind.\"" >&5
+	  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"Client code may need to link against libunwind.\"" >&5
 $as_echo "$as_me: WARNING: \"Client code may need to link against libunwind.\"" >&2;}
 
 fi
 
       ;;
       x86-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* )
-	cat >>confdefs.h <<\_ACEOF
-#define MAKE_BACK_GRAPH 1
-_ACEOF
+	$as_echo "#define MAKE_BACK_GRAPH 1" >>confdefs.h
 
-	{ $as_echo "$as_me:$LINENO: WARNING: \"Client must not use -fomit-frame-pointer.\"" >&5
+	{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \"Client must not use -fomit-frame-pointer.\"" >&5
 $as_echo "$as_me: WARNING: \"Client must not use -fomit-frame-pointer.\"" >&2;}
-	cat >>confdefs.h <<\_ACEOF
-#define SAVE_CALL_COUNT 8
-_ACEOF
+	$as_echo "#define SAVE_CALL_COUNT 8" >>confdefs.h
 
       ;;
       i345686-*-dgux*)
-	cat >>confdefs.h <<\_ACEOF
-#define MAKE_BACK_GRAPH 1
-_ACEOF
+	$as_echo "#define MAKE_BACK_GRAPH 1" >>confdefs.h
 
       ;;
     esac
@@ -16583,47 +15297,35 @@ fi
 
 
 # Check whether --enable-redirect-malloc was given.
-if test "${enable_redirect_malloc+set}" = set; then
+if test "${enable_redirect_malloc+set}" = set; then :
   enableval=$enable_redirect_malloc;
 fi
 
 
 if test "${enable_redirect_malloc}" = yes; then
     if test "${enable_full_debug}" = yes; then
-	cat >>confdefs.h <<\_ACEOF
-#define REDIRECT_MALLOC GC_debug_malloc_replacement
-_ACEOF
+	$as_echo "#define REDIRECT_MALLOC GC_debug_malloc_replacement" >>confdefs.h
 
-	cat >>confdefs.h <<\_ACEOF
-#define REDIRECT_REALLOC GC_debug_realloc_replacement
-_ACEOF
+	$as_echo "#define REDIRECT_REALLOC GC_debug_realloc_replacement" >>confdefs.h
 
-	cat >>confdefs.h <<\_ACEOF
-#define REDIRECT_FREE GC_debug_free
-_ACEOF
+	$as_echo "#define REDIRECT_FREE GC_debug_free" >>confdefs.h
 
     else
-	cat >>confdefs.h <<\_ACEOF
-#define REDIRECT_MALLOC GC_malloc
-_ACEOF
+	$as_echo "#define REDIRECT_MALLOC GC_malloc" >>confdefs.h
 
     fi
 fi
 
-cat >>confdefs.h <<\_ACEOF
-#define _IN_LIBGC 1
-_ACEOF
+$as_echo "#define _IN_LIBGC 1" >>confdefs.h
 
 
 # Check whether --enable-gc-assertions was given.
-if test "${enable_gc_assertions+set}" = set; then
+if test "${enable_gc_assertions+set}" = set; then :
   enableval=$enable_gc_assertions;
 fi
 
 if test "${enable_gc_assertions}" = yes; then
-    cat >>confdefs.h <<\_ACEOF
-#define GC_ASSERTIONS 1
-_ACEOF
+    $as_echo "#define GC_ASSERTIONS 1" >>confdefs.h
 
 fi
 
@@ -16673,13 +15375,13 @@ _ACEOF
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
       BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) $as_unset $ac_var ;;
+      *) { eval $ac_var=; unset $ac_var;} ;;
       esac ;;
     esac
   done
@@ -16687,8 +15389,8 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
   (set) 2>&1 |
     case $as_nl`(ac_space=' '; set) 2>&1` in #(
     *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes (double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \).
+      # `set' does not quote correctly, so add quotes: double-quote
+      # substitution turns \\\\ into \\, and sed turns \\ into \.
       sed -n \
 	"s/'/'\\\\''/g;
 	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
@@ -16711,11 +15413,11 @@ $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
   if test -w "$cache_file"; then
     test "x$cache_file" != "x/dev/null" &&
-      { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
 $as_echo "$as_me: updating cache $cache_file" >&6;}
     cat confcache >$cache_file
   else
-    { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
   fi
 fi
@@ -16771,92 +15473,71 @@ for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
   # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
   #    will be set to the directory where LIBOBJS objects are built.
-  ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-  ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'
+  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
+  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
 done
 LIBOBJS=$ac_libobjs
 
 LTLIBOBJS=$ac_ltlibobjs
 
 
+ if test -n "$EXEEXT"; then
+  am__EXEEXT_TRUE=
+  am__EXEEXT_FALSE='#'
+else
+  am__EXEEXT_TRUE='#'
+  am__EXEEXT_FALSE=
+fi
+
 if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"AMDEP\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"AMDEP\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"am__fastdepCC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${am__fastdepCCAS_TRUE}" && test -z "${am__fastdepCCAS_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCCAS\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"am__fastdepCCAS\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"am__fastdepCCAS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"MAINTAINER_MODE\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${POWERPC_DARWIN_TRUE}" && test -z "${POWERPC_DARWIN_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"POWERPC_DARWIN\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"POWERPC_DARWIN\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"POWERPC_DARWIN\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${COMPILER_XLC_TRUE}" && test -z "${COMPILER_XLC_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"COMPILER_XLC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"COMPILER_XLC\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"COMPILER_XLC\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${CPLUSPLUS_TRUE}" && test -z "${CPLUSPLUS_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"CPLUSPLUS\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"CPLUSPLUS\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"CPLUSPLUS\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"am__fastdepCXX\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 if test -z "${USE_LIBDIR_TRUE}" && test -z "${USE_LIBDIR_FALSE}"; then
-  { { $as_echo "$as_me:$LINENO: error: conditional \"USE_LIBDIR\" was never defined.
-Usually this means the macro was only invoked conditionally." >&5
-$as_echo "$as_me: error: conditional \"USE_LIBDIR\" was never defined.
-Usually this means the macro was only invoked conditionally." >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "conditional \"USE_LIBDIR\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
 
 : ${CONFIG_STATUS=./config.status}
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+as_write_fail=0
+cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
 #! $SHELL
 # Generated by $as_me.
 # Run this file to recreate the current configuration.
@@ -16866,17 +15547,18 @@ cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 debug=false
 ac_cs_recheck=false
 ac_cs_silent=false
-SHELL=\${CONFIG_SHELL-$SHELL}
-_ACEOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-## --------------------- ##
-## M4sh Initialization.  ##
-## --------------------- ##
+SHELL=\${CONFIG_SHELL-$SHELL}
+export SHELL
+_ASEOF
+cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
+## -------------------- ##
+## M4sh Initialization. ##
+## -------------------- ##
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
   emulate sh
   NULLCMD=:
   # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
@@ -16884,23 +15566,15 @@ if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
 else
-  case `(set -o) 2>/dev/null` in
-  *posix*) set -o posix ;;
+  case `(set -o) 2>/dev/null` in #(
+  *posix*) :
+    set -o posix ;; #(
+  *) :
+     ;;
 esac
-
 fi
 
 
-
-
-# PATH needs CR
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
 as_nl='
 '
 export as_nl
@@ -16908,7 +15582,13 @@ export as_nl
 as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
 as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+# Prefer a ksh shell builtin over an external printf program on Solaris,
+# but without wasting forks for bash or zsh.
+if test -z "$BASH_VERSION$ZSH_VERSION" \
+    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='print -r --'
+  as_echo_n='print -rn --'
+elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
   as_echo='printf %s\n'
   as_echo_n='printf %s'
 else
@@ -16919,7 +15599,7 @@ else
     as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
     as_echo_n_body='eval
       arg=$1;
-      case $arg in
+      case $arg in #(
       *"$as_nl"*)
 	expr "X$arg" : "X\\(.*\\)$as_nl";
 	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
@@ -16942,13 +15622,6 @@ if test "${PATH_SEPARATOR+set}" != set; then
   }
 fi
 
-# Support unset when possible.
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  as_unset=unset
-else
-  as_unset=false
-fi
-
 
 # IFS
 # We need space, tab and new line, in precisely that order.  Quoting is
@@ -16958,15 +15631,15 @@ fi
 IFS=" ""	$as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
-case $0 in
+case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-done
+    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+  done
 IFS=$as_save_IFS
 
      ;;
@@ -16978,12 +15651,16 @@ if test "x$as_myself" = x; then
 fi
 if test ! -f "$as_myself"; then
   $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  { (exit 1); exit 1; }
+  exit 1
 fi
 
-# Work around bugs in pre-3.0 UWIN ksh.
-for as_var in ENV MAIL MAILPATH
-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+# Unset variables that we do not need and which cause bugs (e.g. in
+# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
+# suppresses any "Segmentation fault" message there.  '((' could
+# trigger a bug in pdksh 5.2.14.
+for as_var in BASH_ENV ENV MAIL MAILPATH
+do eval test x\${$as_var+set} = xset \
+  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
 done
 PS1='$ '
 PS2='> '
@@ -16995,7 +15672,89 @@ export LC_ALL
 LANGUAGE=C
 export LANGUAGE
 
-# Required to use basename.
+# CDPATH.
+(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
+
+
+# as_fn_error ERROR [LINENO LOG_FD]
+# ---------------------------------
+# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
+# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
+# script with status $?, using 1 if that was 0.
+as_fn_error ()
+{
+  as_status=$?; test $as_status -eq 0 && as_status=1
+  if test "$3"; then
+    as_lineno=${as_lineno-"$2"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
+    $as_echo "$as_me:${as_lineno-$LINENO}: error: $1" >&$3
+  fi
+  $as_echo "$as_me: error: $1" >&2
+  as_fn_exit $as_status
+} # as_fn_error
+
+
+# as_fn_set_status STATUS
+# -----------------------
+# Set $? to STATUS, without forking.
+as_fn_set_status ()
+{
+  return $1
+} # as_fn_set_status
+
+# as_fn_exit STATUS
+# -----------------
+# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
+as_fn_exit ()
+{
+  set +e
+  as_fn_set_status $1
+  exit $1
+} # as_fn_exit
+
+# as_fn_unset VAR
+# ---------------
+# Portably unset VAR.
+as_fn_unset ()
+{
+  { eval $1=; unset $1;}
+}
+as_unset=as_fn_unset
+# as_fn_append VAR VALUE
+# ----------------------
+# Append the text in VALUE to the end of the definition contained in VAR. Take
+# advantage of any shell optimizations that allow amortized linear growth over
+# repeated appends, instead of the typical quadratic growth present in naive
+# implementations.
+if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
+  eval 'as_fn_append ()
+  {
+    eval $1+=\$2
+  }'
+else
+  as_fn_append ()
+  {
+    eval $1=\$$1\$2
+  }
+fi # as_fn_append
+
+# as_fn_arith ARG...
+# ------------------
+# Perform arithmetic evaluation on the ARGs, and store the result in the
+# global $as_val. Take advantage of shells that can avoid forks. The arguments
+# must be portable across $(()) and expr.
+if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
+  eval 'as_fn_arith ()
+  {
+    as_val=$(( $* ))
+  }'
+else
+  as_fn_arith ()
+  {
+    as_val=`expr "$@" || test $? -eq 1`
+  }
+fi # as_fn_arith
+
+
 if expr a : '\(a\)' >/dev/null 2>&1 &&
    test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
@@ -17009,8 +15768,12 @@ else
   as_basename=false
 fi
 
+if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
+  as_dirname=dirname
+else
+  as_dirname=false
+fi
 
-# Name of the executable.
 as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
@@ -17030,76 +15793,25 @@ $as_echo X/"$0" |
 	  }
 	  s/.*/./; q'`
 
-# CDPATH.
-$as_unset CDPATH
-
-
-
-  as_lineno_1=$LINENO
-  as_lineno_2=$LINENO
-  test "x$as_lineno_1" != "x$as_lineno_2" &&
-  test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {
-
-  # Create $as_me.lineno as a copy of $as_myself, but with $LINENO
-  # uniformly replaced by the line number.  The first 'sed' inserts a
-  # line-number line after each line using $LINENO; the second 'sed'
-  # does the real work.  The second script uses 'N' to pair each
-  # line-number line with the line containing $LINENO, and appends
-  # trailing '-' during substitution so that $LINENO is not a special
-  # case at line end.
-  # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the
-  # scripts with optimization help from Paolo Bonzini.  Blame Lee
-  # E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
-   { (exit 1); exit 1; }; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
 
 ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in
+case `echo -n x` in #(((((
 -n*)
-  case `echo 'x\c'` in
+  case `echo 'xy\c'` in
   *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  *)   ECHO_C='\c';;
+  xy)  ECHO_C='\c';;
+  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
+       ECHO_T='	';;
   esac;;
 *)
   ECHO_N='-n';;
 esac
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
 
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
@@ -17128,8 +15840,56 @@ fi
 rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
 rmdir conf$$.dir 2>/dev/null
 
+
+# as_fn_mkdir_p
+# -------------
+# Create "$as_dir" as a directory, including parents if necessary.
+as_fn_mkdir_p ()
+{
+
+  case $as_dir in #(
+  -*) as_dir=./$as_dir;;
+  esac
+  test -d "$as_dir" || eval $as_mkdir_p || {
+    as_dirs=
+    while :; do
+      case $as_dir in #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
+      *) as_qdir=$as_dir;;
+      esac
+      as_dirs="'$as_qdir' $as_dirs"
+      as_dir=`$as_dirname -- "$as_dir" ||
+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_dir" : 'X\(//\)[^/]' \| \
+	 X"$as_dir" : 'X\(//\)$' \| \
+	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)[^/].*/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\/\)$/{
+	    s//\1/
+	    q
+	  }
+	  /^X\(\/\).*/{
+	    s//\1/
+	    q
+	  }
+	  s/.*/./; q'`
+      test -d "$as_dir" && break
+    done
+    test -z "$as_dirs" || eval "mkdir $as_dirs"
+  } || test -d "$as_dir" || as_fn_error "cannot create directory $as_dir"
+
+
+} # as_fn_mkdir_p
 if mkdir -p . 2>/dev/null; then
-  as_mkdir_p=:
+  as_mkdir_p='mkdir -p "$as_dir"'
 else
   test -d ./-p && rmdir ./-p
   as_mkdir_p=false
@@ -17148,10 +15908,10 @@ else
       if test -d "$1"; then
 	test -d "$1/.";
       else
-	case $1 in
+	case $1 in #(
 	-*)set "./$1";;
 	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
+	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
 	???[sx]*):;;*)false;;esac;fi
     '\'' sh
   '
@@ -17166,13 +15926,19 @@ as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
 
 
 exec 6>&1
+## ----------------------------------- ##
+## Main body of $CONFIG_STATUS script. ##
+## ----------------------------------- ##
+_ASEOF
+test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
 
-# Save the log message, to keep $[0] and so on meaningful, and to
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# Save the log message, to keep $0 and so on meaningful, and to
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
 This file was extended by libgc-mono $as_me 6.6, which was
-generated by GNU Autoconf 2.63.  Invocation command line was
+generated by GNU Autoconf 2.64.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -17200,10 +15966,11 @@ _ACEOF
 
 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 ac_cs_usage="\
-\`$as_me' instantiates files from templates according to the
-current configuration.
+\`$as_me' instantiates files and other configuration actions
+from templates according to the current configuration.  Unless the files
+and actions are specified as TAGs, all are instantiated by default.
 
-Usage: $0 [OPTION]... [FILE]...
+Usage: $0 [OPTION]... [TAG]...
 
   -h, --help       print this help, then exit
   -V, --version    print version number and configuration settings, then exit
@@ -17220,16 +15987,16 @@ $config_files
 Configuration commands:
 $config_commands
 
-Report bugs to <bug-autoconf at gnu.org>."
+Report bugs to <Hans_Boehm at hp.com>."
 
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
 libgc-mono config.status 6.6
-configured by $0, generated by GNU Autoconf 2.63,
+configured by $0, generated by GNU Autoconf 2.64,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
-Copyright (C) 2008 Free Software Foundation, Inc.
+Copyright (C) 2009 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -17272,7 +16039,7 @@ do
     case $ac_optarg in
     *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
-    CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"
+    as_fn_append CONFIG_FILES " '$ac_optarg'"
     ac_need_defaults=false;;
   --he | --h |  --help | --hel | -h )
     $as_echo "$ac_cs_usage"; exit ;;
@@ -17281,11 +16048,10 @@ do
     ac_cs_silent=: ;;
 
   # This is an error.
-  -*) { $as_echo "$as_me: error: unrecognized option: $1
-Try \`$0 --help' for more information." >&2
-   { (exit 1); exit 1; }; } ;;
+  -*) as_fn_error "unrecognized option: \`$1'
+Try \`$0 --help' for more information." ;;
 
-  *) ac_config_targets="$ac_config_targets $1"
+  *) as_fn_append ac_config_targets " $1"
      ac_need_defaults=false ;;
 
   esac
@@ -17701,9 +16467,7 @@ do
     "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;;
     "default") CONFIG_COMMANDS="$CONFIG_COMMANDS default" ;;
 
-  *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
-   { (exit 1); exit 1; }; };;
+  *) as_fn_error "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
 done
 
@@ -17729,7 +16493,7 @@ $debug ||
   trap 'exit_status=$?
   { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
 ' 0
-  trap '{ (exit 1); exit 1; }' 1 2 13 15
+  trap 'as_fn_exit 1' 1 2 13 15
 }
 # Create a (secure) tmp directory for tmp files.
 
@@ -17740,11 +16504,7 @@ $debug ||
 {
   tmp=./conf$$-$RANDOM
   (umask 077 && mkdir "$tmp")
-} ||
-{
-   $as_echo "$as_me: cannot create a temporary directory in ." >&2
-   { (exit 1); exit 1; }
-}
+} || as_fn_error "cannot create a temporary directory in ." "$LINENO" 5
 
 # Set up the scripts for CONFIG_FILES section.
 # No need to generate them if there are no CONFIG_FILES.
@@ -17752,10 +16512,16 @@ $debug ||
 if test -n "$CONFIG_FILES"; then
 
 
-ac_cr='
'
+ac_cr=`echo X | tr X '\015'`
+# On cygwin, bash can eat \r inside `` if the user requested igncr.
+# But we know of no other shell where ac_cr would be empty at this
+# point, so we can use a bashism as a fallback.
+if test "x$ac_cr" = x; then
+  eval ac_cr=\$\'\\r\'
+fi
 ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
 if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
-  ac_cs_awk_cr='\\r'
+  ac_cs_awk_cr='\r'
 else
   ac_cs_awk_cr=$ac_cr
 fi
@@ -17769,24 +16535,18 @@ _ACEOF
   echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
   echo "_ACEOF"
 } >conf$$subs.sh ||
-  { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
 ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
   . ./conf$$subs.sh ||
-    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
 
   ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
   if test $ac_delim_n = $ac_delim_num; then
     break
   elif $ac_last_try; then
-    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+    as_fn_error "could not make $CONFIG_STATUS" "$LINENO" 5
   else
     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
@@ -17875,9 +16635,7 @@ if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
 else
   cat
 fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
-  || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5
-$as_echo "$as_me: error: could not setup config files machinery" >&2;}
-   { (exit 1); exit 1; }; }
+  || as_fn_error "could not setup config files machinery" "$LINENO" 5
 _ACEOF
 
 # VPATH may cause trouble with some makes, so we remove $(srcdir),
@@ -17908,9 +16666,7 @@ do
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5
-$as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
-   { (exit 1); exit 1; }; };;
+  :L* | :C*:*) as_fn_error "invalid tag \`$ac_tag'" "$LINENO" 5;;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
   esac
@@ -17938,12 +16694,10 @@ $as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
 	   [\\/$]*) false;;
 	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
 	   esac ||
-	   { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
-$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
-   { (exit 1); exit 1; }; };;
+	   as_fn_error "cannot find input file: \`$ac_f'" "$LINENO" 5;;
       esac
       case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
-      ac_file_inputs="$ac_file_inputs '$ac_f'"
+      as_fn_append ac_file_inputs " '$ac_f'"
     done
 
     # Let's still pretend it is `configure' which instantiates (i.e., don't
@@ -17954,7 +16708,7 @@ $as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
 	`' by configure.'
     if test x"$ac_file" != x-; then
       configure_input="$ac_file.  $configure_input"
-      { $as_echo "$as_me:$LINENO: creating $ac_file" >&5
+      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
 $as_echo "$as_me: creating $ac_file" >&6;}
     fi
     # Neutralize special characters interpreted by sed in replacement strings.
@@ -17967,9 +16721,7 @@ $as_echo "$as_me: creating $ac_file" >&6;}
 
     case $ac_tag in
     *:-:* | *:-) cat >"$tmp/stdin" \
-      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; } ;;
+      || as_fn_error "could not create $ac_file" "$LINENO" 5 ;;
     esac
     ;;
   esac
@@ -17997,47 +16749,7 @@ $as_echo X"$ac_file" |
 	    q
 	  }
 	  s/.*/./; q'`
-  { as_dir="$ac_dir"
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
-   { (exit 1); exit 1; }; }; }
+  as_dir="$ac_dir"; as_fn_mkdir_p
   ac_builddir=.
 
 case "$ac_dir" in
@@ -18094,7 +16806,6 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # If the template does not know about datarootdir, expand it.
 # FIXME: This hack should be removed a few years after 2.60.
 ac_datarootdir_hack=; ac_datarootdir_seen=
-
 ac_sed_dataroot='
 /datarootdir/ {
   p
@@ -18104,12 +16815,11 @@ ac_sed_dataroot='
 /@docdir@/p
 /@infodir@/p
 /@localedir@/p
-/@mandir@/p
-'
+/@mandir@/p'
 case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
 *datarootdir*) ac_datarootdir_seen=yes;;
 *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
@@ -18119,7 +16829,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
   s&@infodir@&$infodir&g
   s&@localedir@&$localedir&g
   s&@mandir@&$mandir&g
-    s&\\\${datarootdir}&$datarootdir&g' ;;
+  s&\\\${datarootdir}&$datarootdir&g' ;;
 esac
 _ACEOF
 
@@ -18148,14 +16858,12 @@ s&@MKDIR_P@&$ac_MKDIR_P&;t t
 $ac_datarootdir_hack
 "
 eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
-  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
+  || as_fn_error "could not create $ac_file" "$LINENO" 5
 
 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
   { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
   { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
-  { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined." >&5
 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined." >&2;}
@@ -18165,31 +16873,39 @@ which seems to be undefined.  Please make sure it is defined." >&2;}
   -) cat "$tmp/out" && rm -f "$tmp/out";;
   *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
   esac \
-  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
-$as_echo "$as_me: error: could not create $ac_file" >&2;}
-   { (exit 1); exit 1; }; }
+  || as_fn_error "could not create $ac_file" "$LINENO" 5
  ;;
 
 
-  :C)  { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5
+  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
 $as_echo "$as_me: executing $ac_file commands" >&6;}
  ;;
   esac
 
 
   case $ac_file$ac_mode in
-    "depfiles":C) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do
-  # Strip MF so we end up with the name of the file.
-  mf=`echo "$mf" | sed -e 's/:.*$//'`
-  # Check whether this is an Automake generated Makefile or not.
-  # We used to match only the files named `Makefile.in', but
-  # some people rename them; so instead we look at the file content.
-  # Grep'ing the first line is not enough: some people post-process
-  # each Makefile.in and add a new line on top of each file to say so.
-  # Grep'ing the whole file is not good either: AIX grep has a line
-  # limit of 2048, but all sed's we know have understand at least 4000.
-  if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
-    dirpart=`$as_dirname -- "$mf" ||
+    "depfiles":C) test x"$AMDEP_TRUE" != x"" || {
+  # Autoconf 2.62 quotes --file arguments for eval, but not when files
+  # are listed without --file.  Let's play safe and only enable the eval
+  # if we detect the quoting.
+  case $CONFIG_FILES in
+  *\'*) eval set x "$CONFIG_FILES" ;;
+  *)   set x $CONFIG_FILES ;;
+  esac
+  shift
+  for mf
+  do
+    # Strip MF so we end up with the name of the file.
+    mf=`echo "$mf" | sed -e 's/:.*$//'`
+    # Check whether this is an Automake generated Makefile or not.
+    # We used to match only the files named `Makefile.in', but
+    # some people rename them; so instead we look at the file content.
+    # Grep'ing the first line is not enough: some people post-process
+    # each Makefile.in and add a new line on top of each file to say so.
+    # Grep'ing the whole file is not good either: AIX grep has a line
+    # limit of 2048, but all sed's we know have understand at least 4000.
+    if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
+      dirpart=`$as_dirname -- "$mf" ||
 $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$mf" : 'X\(//\)[^/]' \| \
 	 X"$mf" : 'X\(//\)$' \| \
@@ -18212,28 +16928,28 @@ $as_echo X"$mf" |
 	    q
 	  }
 	  s/.*/./; q'`
-  else
-    continue
-  fi
-  # Extract the definition of DEPDIR, am__include, and am__quote
-  # from the Makefile without running `make'.
-  DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
-  test -z "$DEPDIR" && continue
-  am__include=`sed -n 's/^am__include = //p' < "$mf"`
-  test -z "am__include" && continue
-  am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
-  # When using ansi2knr, U may be empty or an underscore; expand it
-  U=`sed -n 's/^U = //p' < "$mf"`
-  # Find all dependency output files, they are included files with
-  # $(DEPDIR) in their names.  We invoke sed twice because it is the
-  # simplest approach to changing $(DEPDIR) to its actual value in the
-  # expansion.
-  for file in `sed -n "
-    s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
-       sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
-    # Make sure the directory exists.
-    test -f "$dirpart/$file" && continue
-    fdir=`$as_dirname -- "$file" ||
+    else
+      continue
+    fi
+    # Extract the definition of DEPDIR, am__include, and am__quote
+    # from the Makefile without running `make'.
+    DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
+    test -z "$DEPDIR" && continue
+    am__include=`sed -n 's/^am__include = //p' < "$mf"`
+    test -z "am__include" && continue
+    am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
+    # When using ansi2knr, U may be empty or an underscore; expand it
+    U=`sed -n 's/^U = //p' < "$mf"`
+    # Find all dependency output files, they are included files with
+    # $(DEPDIR) in their names.  We invoke sed twice because it is the
+    # simplest approach to changing $(DEPDIR) to its actual value in the
+    # expansion.
+    for file in `sed -n "
+      s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
+	 sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
+      # Make sure the directory exists.
+      test -f "$dirpart/$file" && continue
+      fdir=`$as_dirname -- "$file" ||
 $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$file" : 'X\(//\)[^/]' \| \
 	 X"$file" : 'X\(//\)$' \| \
@@ -18256,51 +16972,12 @@ $as_echo X"$file" |
 	    q
 	  }
 	  s/.*/./; q'`
-    { as_dir=$dirpart/$fdir
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
+      as_dir=$dirpart/$fdir; as_fn_mkdir_p
+      # echo "creating $dirpart/$file"
+      echo '# dummy' > "$dirpart/$file"
     done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
-   { (exit 1); exit 1; }; }; }
-    # echo "creating $dirpart/$file"
-    echo '# dummy' > "$dirpart/$file"
   done
-done
+}
  ;;
     "libtool":C)
 
@@ -19109,15 +17786,12 @@ _LT_EOF
 done # for ac_tag
 
 
-{ (exit 0); exit 0; }
+as_fn_exit 0
 _ACEOF
-chmod +x $CONFIG_STATUS
 ac_clean_files=$ac_clean_files_save
 
 test $ac_write_fail = 0 ||
-  { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
+  as_fn_error "write failure creating $CONFIG_STATUS" "$LINENO" 5
 
 
 # configure is writing to config.log, and then calls config.status.
@@ -19138,10 +17812,10 @@ if test "$no_create" != yes; then
   exec 5>>config.log
   # Use ||, not &&, to avoid exiting from the if with $? = 1, which
   # would make configure fail if this is the last instruction.
-  $ac_cs_success || { (exit 1); exit 1; }
+  $ac_cs_success || as_fn_exit $?
 fi
 if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
 fi
 
diff --git a/libgc/doc/Makefile.in b/libgc/doc/Makefile.in
index b102ae0..bb330d7 100644
--- a/libgc/doc/Makefile.in
+++ b/libgc/doc/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -29,8 +30,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -55,6 +57,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -62,9 +65,23 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(pkgdatadir)"
-dist_pkgdataDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(dist_pkgdata_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -131,6 +148,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 RANLIB = @RANLIB@
@@ -219,14 +237,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  doc/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  doc/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu doc/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu doc/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -244,6 +262,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -253,20 +272,23 @@ clean-libtool:
 install-dist_pkgdataDATA: $(dist_pkgdata_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(pkgdatadir)" || $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)"
-	@list='$(dist_pkgdata_DATA)'; for p in $$list; do \
+	@list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
+	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  f=$(am__strip_dir) \
-	  echo " $(dist_pkgdataDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(pkgdatadir)/$$f'"; \
-	  $(dist_pkgdataDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(pkgdatadir)/$$f"; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgdatadir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgdatadir)" || exit $$?; \
 	done
 
 uninstall-dist_pkgdataDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(dist_pkgdata_DATA)'; for p in $$list; do \
-	  f=$(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(pkgdatadir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(pkgdatadir)/$$f"; \
-	done
+	@list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	test -n "$$files" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(pkgdatadir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(pkgdatadir)" && rm -f $$files
 tags: TAGS
 TAGS:
 
@@ -290,13 +312,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -327,6 +353,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -345,6 +372,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -353,18 +382,28 @@ install-data-am: install-dist_pkgdataDATA
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -399,6 +438,7 @@ uninstall-am: uninstall-dist_pkgdataDATA
 	mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \
 	ps ps-am uninstall uninstall-am uninstall-dist_pkgdataDATA
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/libgc/include/Makefile.in b/libgc/include/Makefile.in
index 81b319d..8dc66ef 100644
--- a/libgc/include/Makefile.in
+++ b/libgc/include/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -42,6 +44,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -54,10 +57,38 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 HEADERS = $(noinst_HEADERS)
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+	distdir
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
 AR = @AR@
@@ -122,6 +153,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 RANLIB = @RANLIB@
@@ -200,14 +232,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  include/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  include/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu include/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -225,6 +257,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -256,7 +289,7 @@ $(RECURSIVE_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done; \
 	if test "$$dot_seen" = "no"; then \
@@ -290,16 +323,16 @@ $(RECURSIVE_CLEAN_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done && test -z "$$fail"
 tags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 	done
 ctags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
 	done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -307,14 +340,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
 	  include_option=--etags-include; \
@@ -326,7 +359,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test ! -f $$subdir/TAGS || \
-	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
@@ -335,29 +368,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -378,29 +416,44 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
-	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test -d "$(distdir)/$$subdir" \
 	    || $(MKDIR_P) "$(distdir)/$$subdir" \
 	    || exit 1; \
-	    distdir=`$(am__cd) $(distdir) && pwd`; \
-	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
-	    (cd $$subdir && \
+	  fi; \
+	done
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+	    $(am__relativize); \
+	    new_distdir=$$reldir; \
+	    dir1=$$subdir; dir2="$(top_distdir)"; \
+	    $(am__relativize); \
+	    new_top_distdir=$$reldir; \
+	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+	    ($(am__cd) $$subdir && \
 	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$top_distdir" \
-	        distdir="$$distdir/$$subdir" \
+	        top_distdir="$$new_top_distdir" \
+	        distdir="$$new_distdir" \
 		am__remove_distdir=: \
 		am__skip_length_check=: \
+		am__skip_mode_fix=: \
 	        distdir) \
 	      || exit 1; \
 	  fi; \
@@ -430,6 +483,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -448,6 +502,8 @@ dvi-am:
 
 html: html-recursive
 
+html-am:
+
 info: info-recursive
 
 info-am:
@@ -456,18 +512,28 @@ install-data-am:
 
 install-dvi: install-dvi-recursive
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-recursive
 
+install-html-am:
+
 install-info: install-info-recursive
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-recursive
 
+install-pdf-am:
+
 install-ps: install-ps-recursive
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -488,8 +554,8 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
-	install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+	install-am install-strip tags-recursive
 
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
 	all all-am check check-am clean clean-generic clean-libtool \
@@ -505,6 +571,7 @@ uninstall-am:
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
 	uninstall uninstall-am
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/libgc/include/private/Makefile.in b/libgc/include/private/Makefile.in
index 68eb807..b35e2d3 100644
--- a/libgc/include/private/Makefile.in
+++ b/libgc/include/private/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,8 +16,9 @@
 @SET_MAKE@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -40,6 +42,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 	$(ACLOCAL_M4)
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -107,6 +110,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 RANLIB = @RANLIB@
@@ -183,14 +187,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  include/private/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  include/private/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu include/private/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu include/private/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -208,6 +212,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -237,13 +242,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -271,6 +280,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -289,6 +299,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -297,18 +309,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -342,6 +364,7 @@ uninstall-am:
 	maintainer-clean-generic mostlyclean mostlyclean-generic \
 	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/libgc/ltmain.sh b/libgc/ltmain.sh
index b36c4ad..3506ead 100755
--- a/libgc/ltmain.sh
+++ b/libgc/ltmain.sh
@@ -65,7 +65,7 @@
 #       compiler:		$LTCC
 #       compiler flags:		$LTCFLAGS
 #       linker:		$LD (gnu? $with_gnu_ld)
-#       $progname:		(GNU libtool) 2.2.6
+#       $progname:		(GNU libtool) 2.2.6 Debian-2.2.6a-4
 #       automake:		$automake_version
 #       autoconf:		$autoconf_version
 #
@@ -73,7 +73,7 @@
 
 PROGRAM=ltmain.sh
 PACKAGE=libtool
-VERSION=2.2.6
+VERSION="2.2.6 Debian-2.2.6a-4"
 TIMESTAMP=""
 package_revision=1.3012
 
@@ -116,15 +116,15 @@ $lt_unset CDPATH
 
 : ${CP="cp -f"}
 : ${ECHO="echo"}
-: ${EGREP="/usr/bin/grep -E"}
-: ${FGREP="/usr/bin/grep -F"}
-: ${GREP="/usr/bin/grep"}
+: ${EGREP="/bin/grep -E"}
+: ${FGREP="/bin/grep -F"}
+: ${GREP="/bin/grep"}
 : ${LN_S="ln -s"}
 : ${MAKE="make"}
 : ${MKDIR="mkdir"}
 : ${MV="mv -f"}
 : ${RM="rm -f"}
-: ${SED="/opt/local/bin/gsed"}
+: ${SED="/bin/sed"}
 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
 : ${Xsed="$SED -e 1s/^X//"}
 
@@ -5033,7 +5033,10 @@ func_mode_link ()
 	case $pass in
 	dlopen) libs="$dlfiles" ;;
 	dlpreopen) libs="$dlprefiles" ;;
-	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+	link)
+	  libs="$deplibs %DEPLIBS%"
+	  test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
+	  ;;
 	esac
       fi
       if test "$linkmode,$pass" = "lib,dlpreopen"; then
@@ -5344,19 +5347,19 @@ func_mode_link ()
 	    # It is a libtool convenience library, so add in its objects.
 	    convenience="$convenience $ladir/$objdir/$old_library"
 	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
+	    tmp_libs=
+	    for deplib in $dependency_libs; do
+	      deplibs="$deplib $deplibs"
+	      if $opt_duplicate_deps ; then
+		case "$tmp_libs " in
+		*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+		esac
+	      fi
+	      tmp_libs="$tmp_libs $deplib"
+	    done
 	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
 	    func_fatal_error "\`$lib' is not a convenience library"
 	  fi
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    deplibs="$deplib $deplibs"
-	    if $opt_duplicate_deps ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	      esac
-	    fi
-	    tmp_libs="$tmp_libs $deplib"
-	  done
 	  continue
 	fi # $pass = conv
 
@@ -5893,6 +5896,7 @@ func_mode_link ()
 	  if test "$link_all_deplibs" != no; then
 	    # Add the search paths of all dependency libraries
 	    for deplib in $dependency_libs; do
+	      path=
 	      case $deplib in
 	      -L*) path="$deplib" ;;
 	      *.la)
@@ -6206,6 +6210,9 @@ func_mode_link ()
 	    revision="$number_minor"
 	    lt_irix_increment=no
 	    ;;
+	  *)
+	    func_fatal_configuration "$modename: unknown library version type \`$version_type'"
+	    ;;
 	  esac
 	  ;;
 	no)
diff --git a/libtool.m4 b/libtool.m4
index 39ba996..1e7ea47 100644
--- a/libtool.m4
+++ b/libtool.m4
@@ -2485,6 +2485,18 @@ linux* | k*bsd*-gnu)
   dynamic_linker='GNU/Linux ld.so'
   ;;
 
+netbsdelf*-gnu)
+  version_type=linux
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
+  soname_spec='${libname}${release}${shared_ext}$major'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  dynamic_linker='NetBSD ld.elf_so'
+  ;;
+
 netbsd*)
   version_type=sunos
   need_lib_prefix=no
@@ -3076,7 +3088,7 @@ linux* | k*bsd*-gnu)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-netbsd*)
+netbsd* | netbsdelf*-gnu)
   if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
     lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
   else
@@ -3757,7 +3769,7 @@ m4_if([$1], [CXX], [
 	    ;;
 	esac
 	;;
-      netbsd*)
+      netbsd* | netbsdelf*-gnu)
 	;;
       *qnx* | *nto*)
         # QNX uses GNU C++, but need to define -shared option too, otherwise
@@ -4182,6 +4194,9 @@ m4_if([$1], [CXX], [
   cygwin* | mingw* | cegcc*)
     _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
   ;;
+  linux* | k*bsd*-gnu)
+    _LT_TAGVAR(link_all_deplibs, $1)=no
+  ;;
   *)
     _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
   ;;
@@ -4246,6 +4261,9 @@ dnl Note also adjust exclude_expsyms for C++ above.
   openbsd*)
     with_gnu_ld=no
     ;;
+  linux* | k*bsd*-gnu)
+    _LT_TAGVAR(link_all_deplibs, $1)=no
+    ;;
   esac
 
   _LT_TAGVAR(ld_shlibs, $1)=yes
@@ -4428,7 +4446,7 @@ _LT_EOF
       fi
       ;;
 
-    netbsd*)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
 	wlarc=
@@ -4603,6 +4621,7 @@ _LT_EOF
 	if test "$aix_use_runtimelinking" = yes; then
 	  shared_flag="$shared_flag "'${wl}-G'
 	fi
+	_LT_TAGVAR(link_all_deplibs, $1)=no
       else
 	# not using gcc
 	if test "$host_cpu" = ia64; then
@@ -4841,7 +4860,7 @@ _LT_EOF
       _LT_TAGVAR(link_all_deplibs, $1)=yes
       ;;
 
-    netbsd*)
+    netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
       else
diff --git a/ltmain.sh b/ltmain.sh
index b36c4ad..3506ead 100755
--- a/ltmain.sh
+++ b/ltmain.sh
@@ -65,7 +65,7 @@
 #       compiler:		$LTCC
 #       compiler flags:		$LTCFLAGS
 #       linker:		$LD (gnu? $with_gnu_ld)
-#       $progname:		(GNU libtool) 2.2.6
+#       $progname:		(GNU libtool) 2.2.6 Debian-2.2.6a-4
 #       automake:		$automake_version
 #       autoconf:		$autoconf_version
 #
@@ -73,7 +73,7 @@
 
 PROGRAM=ltmain.sh
 PACKAGE=libtool
-VERSION=2.2.6
+VERSION="2.2.6 Debian-2.2.6a-4"
 TIMESTAMP=""
 package_revision=1.3012
 
@@ -116,15 +116,15 @@ $lt_unset CDPATH
 
 : ${CP="cp -f"}
 : ${ECHO="echo"}
-: ${EGREP="/usr/bin/grep -E"}
-: ${FGREP="/usr/bin/grep -F"}
-: ${GREP="/usr/bin/grep"}
+: ${EGREP="/bin/grep -E"}
+: ${FGREP="/bin/grep -F"}
+: ${GREP="/bin/grep"}
 : ${LN_S="ln -s"}
 : ${MAKE="make"}
 : ${MKDIR="mkdir"}
 : ${MV="mv -f"}
 : ${RM="rm -f"}
-: ${SED="/opt/local/bin/gsed"}
+: ${SED="/bin/sed"}
 : ${SHELL="${CONFIG_SHELL-/bin/sh}"}
 : ${Xsed="$SED -e 1s/^X//"}
 
@@ -5033,7 +5033,10 @@ func_mode_link ()
 	case $pass in
 	dlopen) libs="$dlfiles" ;;
 	dlpreopen) libs="$dlprefiles" ;;
-	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
+	link)
+	  libs="$deplibs %DEPLIBS%"
+	  test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs"
+	  ;;
 	esac
       fi
       if test "$linkmode,$pass" = "lib,dlpreopen"; then
@@ -5344,19 +5347,19 @@ func_mode_link ()
 	    # It is a libtool convenience library, so add in its objects.
 	    convenience="$convenience $ladir/$objdir/$old_library"
 	    old_convenience="$old_convenience $ladir/$objdir/$old_library"
+	    tmp_libs=
+	    for deplib in $dependency_libs; do
+	      deplibs="$deplib $deplibs"
+	      if $opt_duplicate_deps ; then
+		case "$tmp_libs " in
+		*" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
+		esac
+	      fi
+	      tmp_libs="$tmp_libs $deplib"
+	    done
 	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
 	    func_fatal_error "\`$lib' is not a convenience library"
 	  fi
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    deplibs="$deplib $deplibs"
-	    if $opt_duplicate_deps ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) specialdeplibs="$specialdeplibs $deplib" ;;
-	      esac
-	    fi
-	    tmp_libs="$tmp_libs $deplib"
-	  done
 	  continue
 	fi # $pass = conv
 
@@ -5893,6 +5896,7 @@ func_mode_link ()
 	  if test "$link_all_deplibs" != no; then
 	    # Add the search paths of all dependency libraries
 	    for deplib in $dependency_libs; do
+	      path=
 	      case $deplib in
 	      -L*) path="$deplib" ;;
 	      *.la)
@@ -6206,6 +6210,9 @@ func_mode_link ()
 	    revision="$number_minor"
 	    lt_irix_increment=no
 	    ;;
+	  *)
+	    func_fatal_configuration "$modename: unknown library version type \`$version_type'"
+	    ;;
 	  esac
 	  ;;
 	no)
diff --git a/man/Makefile.in b/man/Makefile.in
index ed43c4f..3414b0e 100644
--- a/man/Makefile.in
+++ b/man/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,8 +16,9 @@
 @SET_MAKE@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -46,8 +48,30 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 man1dir = $(mandir)/man1
 am__installdirs = "$(DESTDIR)$(man1dir)" "$(DESTDIR)$(man5dir)"
 man5dir = $(mandir)/man5
@@ -144,6 +168,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -297,14 +322,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  man/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  man/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu man/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu man/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -322,102 +347,89 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
 
 clean-libtool:
 	-rm -rf .libs _libs
-install-man1: $(man1_MANS) $(man_MANS)
+install-man1: $(man_MANS)
 	@$(NORMAL_INSTALL)
 	test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
-	@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-	for i in $$l2; do \
-	  case "$$i" in \
-	    *.1*) list="$$list $$i" ;; \
-	  esac; \
+	@list=''; test -n "$(man1dir)" || exit 0; \
+	{ for i in $$list; do echo "$$i"; done; \
+	l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+	  sed -n '/\.1[a-z]*$$/p'; \
+	} | while read p; do \
+	  if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; echo "$$p"; \
+	done | \
+	sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+	sed 'N;N;s,\n, ,g' | { \
+	list=; while read file base inst; do \
+	  if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+	    echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+	    $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+	  fi; \
 	done; \
-	for i in $$list; do \
-	  if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-	  else file=$$i; fi; \
-	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-	  case "$$ext" in \
-	    1*) ;; \
-	    *) ext='1' ;; \
-	  esac; \
-	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
-	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-	  echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
-	  $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
-	done
+	for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+	while read files; do \
+	  test -z "$$files" || { \
+	    echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+	    $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+	done; }
+
 uninstall-man1:
 	@$(NORMAL_UNINSTALL)
-	@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-	for i in $$l2; do \
-	  case "$$i" in \
-	    *.1*) list="$$list $$i" ;; \
-	  esac; \
-	done; \
-	for i in $$list; do \
-	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-	  case "$$ext" in \
-	    1*) ;; \
-	    *) ext='1' ;; \
-	  esac; \
-	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
-	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-	  echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
-	  rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
-	done
-install-man5: $(man5_MANS) $(man_MANS)
+	@list=''; test -n "$(man1dir)" || exit 0; \
+	files=`{ for i in $$list; do echo "$$i"; done; \
+	l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+	  sed -n '/\.1[a-z]*$$/p'; \
+	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+	test -z "$$files" || { \
+	  echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
+	  cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
+install-man5: $(man_MANS)
 	@$(NORMAL_INSTALL)
 	test -z "$(man5dir)" || $(MKDIR_P) "$(DESTDIR)$(man5dir)"
-	@list='$(man5_MANS) $(dist_man5_MANS) $(nodist_man5_MANS)'; \
-	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-	for i in $$l2; do \
-	  case "$$i" in \
-	    *.5*) list="$$list $$i" ;; \
-	  esac; \
+	@list=''; test -n "$(man5dir)" || exit 0; \
+	{ for i in $$list; do echo "$$i"; done; \
+	l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+	  sed -n '/\.5[a-z]*$$/p'; \
+	} | while read p; do \
+	  if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; echo "$$p"; \
+	done | \
+	sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+	sed 'N;N;s,\n, ,g' | { \
+	list=; while read file base inst; do \
+	  if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+	    echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \
+	    $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst" || exit $$?; \
+	  fi; \
 	done; \
-	for i in $$list; do \
-	  if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-	  else file=$$i; fi; \
-	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-	  case "$$ext" in \
-	    5*) ;; \
-	    *) ext='5' ;; \
-	  esac; \
-	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
-	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-	  echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man5dir)/$$inst'"; \
-	  $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man5dir)/$$inst"; \
-	done
+	for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+	while read files; do \
+	  test -z "$$files" || { \
+	    echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man5dir)'"; \
+	    $(INSTALL_DATA) $$files "$(DESTDIR)$(man5dir)" || exit $$?; }; \
+	done; }
+
 uninstall-man5:
 	@$(NORMAL_UNINSTALL)
-	@list='$(man5_MANS) $(dist_man5_MANS) $(nodist_man5_MANS)'; \
-	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-	for i in $$l2; do \
-	  case "$$i" in \
-	    *.5*) list="$$list $$i" ;; \
-	  esac; \
-	done; \
-	for i in $$list; do \
-	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-	  case "$$ext" in \
-	    5*) ;; \
-	    *) ext='5' ;; \
-	  esac; \
-	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
-	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-	  echo " rm -f '$(DESTDIR)$(man5dir)/$$inst'"; \
-	  rm -f "$(DESTDIR)$(man5dir)/$$inst"; \
-	done
+	@list=''; test -n "$(man5dir)" || exit 0; \
+	files=`{ for i in $$list; do echo "$$i"; done; \
+	l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+	  sed -n '/\.5[a-z]*$$/p'; \
+	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^5][0-9a-z]*$$,5,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+	test -z "$$files" || { \
+	  echo " ( cd '$(DESTDIR)$(man5dir)' && rm -f" $$files ")"; \
+	  cd "$(DESTDIR)$(man5dir)" && rm -f $$files; }
 tags: TAGS
 TAGS:
 
@@ -426,6 +438,19 @@ CTAGS:
 
 
 distdir: $(DISTFILES)
+	@list='$(MANS)'; if test -n "$$list"; then \
+	  list=`for p in $$list; do \
+	    if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+	    if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+	  if test -n "$$list" && \
+	    grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+	    echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+	    grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
+	    echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+	    echo "       typically \`make maintainer-clean' will remove them" >&2; \
+	    exit 1; \
+	  else :; fi; \
+	else :; fi
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	list='$(DISTFILES)'; \
@@ -441,13 +466,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -478,6 +507,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -496,6 +526,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -504,18 +536,28 @@ install-data-am: install-man
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man: install-man1 install-man5
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -553,6 +595,7 @@ uninstall-man: uninstall-man1 uninstall-man5
 	ps ps-am uninstall uninstall-am uninstall-man uninstall-man1 \
 	uninstall-man5
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mcs/build/common/Consts.cs b/mcs/build/common/Consts.cs
index 0633646..098a691 100644
--- a/mcs/build/common/Consts.cs
+++ b/mcs/build/common/Consts.cs
@@ -46,7 +46,7 @@ internal
 	// Use these assembly version constants to make code more maintainable.
 	//
 
-	public const string MonoVersion = "2.4.3.0";
+	public const string MonoVersion = "2.4.4.0";
 	public const string MonoCompany = "MONO development team";
 	public const string MonoProduct = "MONO Common language infrastructure";
 	public const string MonoCopyright = "(c) various MONO Authors";
diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
index c1e3084..5b8e4b5 100644
--- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
+++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ChangeLog
@@ -1,3 +1,125 @@
+2010-01-21  Carlos Alberto Cortez <calberto.cortez at gmail.com> 
+
+	* ComboBox.cs: When the normal drop down window is closed, make sure
+	that the auto complete list -if any- is closed as well, instead of
+	stay open without need.
+
+2010-01-21  Carlos Alberto Cortez <calberto.cortez at gmail.com>
+
+ 	* TextBox.cs: When showing the autocomplete listbox, make sure it's on
+ 	top, by calling the raw XplatUI.SetZOrder for it, since we can't
+ 	properly call BringToFront on it as it is parentless. This fixes an
+ 	issue when using this feature with ComboBox's own parentless listbox.
+ 	Fixes the remaining bits of #489339.
+
+2010-01-21  Carlos Alberto Cortez <calberto.cortez at gmail.com>
+
+	* XplatUI.cs:
+ 	* XplatUIDriver:
+	* XplatUICarbon:
+ 	* XplatUIWin32:
+ 	* XplatUIX11.cs: 
+ 	* XplatUIStructs: Implement support for different kind of audible
+ 	alerts in Windows, and update the requiered classes.
+ 	* MessageBox.cs: 
+ 	* TextBoxBase.cs: Update calls to XplatUI.AudibleAlert.
+ 	Fixes #473725.
+
+2010-01-21  Carlos Alberto Cortez <calberto.cortez at gmail.com>
+
+	* ComboBox.cs: When use manually setting DropDownHeight, ignore the
+	MaxDropDownHeight property - also rename our field 'count' to
+	'visible_items_count' to avoid confusion as much as possible.
+	Fixes an issue with several items, showing an incorrect layout.
+
+2010-01-21  Carlos Alberto Cortez <calberto.cortez at gmail.com>
+
+	* RichTextBox.cs: SelectedText should set Modified to true. Observe
+	that this is happening just here, not for the Text property, and
+	neither for the TextBoxBase impl.
+	Fixes #569950.
+
+2010-01-10  Carlos Alberto Cortez <calberto.cortez at gmail.com>
+
+	* ToolStripMenuItem.cs: Put the Checked/CheckState logic in a single
+	place and synchronize the events properly. Fixes a lack of
+	coordination between the events - which should be fired together.
+
+2010-01-09  Carlos Alberto Cortez <calberto.cortez at gmail.com>
+
+	* TrackBar.cs: Move our events code to a single method, allowing it to
+	optionally fire the Scroll event. This way we both avoid the
+	duplicated calls to OnScroll and also will be able to fire Scroll
+	*before* OnValueChanged in other places.
+	Fixes #568026.
+
+2010-01-04  Carlos Alberto Cortez <calberto.cortez at gmail.com>
+
+	* RadioButton.cs: When drawing, if Appearance is Button use the old
+	normal routine in the theme engine, instead of using the one in 2.0,
+	since this last one doesn't support proper rendering of the control as
+	a button.
+	Fixes #567904.
+
+2010-01-03  Carlos Alberto Cortez <calberto.cortez at gmail.com>
+
+	* GroupBoxRenderer.cs: Properly use SystemColors.GrayText to draw to
+	text of the group box if it is disabled.
+	Fixes #567847.
+
+2009-11-18  Carlos Alberto Cortez <calberto.cortez at gmail.com>
+
+	* XplatUICarbon.cs: Implement the overriden AudibleAlert
+	function in XplatUICarbon.  Currently it throws
+	NotImplementedException which will kill a WinForms application showing
+	a dialog box.
+	Patch by  Erik Ylvisaker (erik at agatelib.org).
+
+2009-11-18  Carlos Alberto Cortez <calberto.cortez at gmail.com>
+
+	* DataGrid.cs: In CurrentCell, the check to do nothing in case we are
+	in the same cell as specified *and* not editing is wrong.
+
+2009-11-18  Carlos Alberto Cortez <calberto.cortez at gmail.com>
+
+	* DataGrid.cs: When removing the cells, don't do anything if the
+	specified row is the extra cell we use to add new ones.
+
+2009-11-18  Carlos Alberto Cortez <calberto.cortez at gmail.com>
+
+	* DataGrid.cs: CurrentCell should be *used* if the new value is the
+	same as the current one, since we could need to activate the edition
+	in the current row. Also, when beginning the edition, do nothing if,
+	basides having an empty source, we are sure we don't have the new
+	cell, which could obviously start it.
+	Fixes other bits of #323154.
+
+2009-11-18  Carlos Alberto Cortez <calberto.cortez at gmail.com>
+
+	* DataGrid.cs: When we get notified by a change in the position of our
+	data source, don't set CurrentRow if the source is empty, as there's
+	no need to do anything else in the first place, and second, the logic
+	in the CurrentRow setter (public property) will add a new row by
+	default in this case (that is, when the source is empty).
+	Fixes part of #323154.
+
+2009-11-18  Carlos Alberto Cortez <calberto.cortez at gmail.com>
+
+	* ToolStripMenuItem.cs: Don't try to use SystemColors.MenuText if fore
+	color is SystemColors.ControlText, as this system color detection
+	should be done *completely*. This is specially important when
+	detecting colors in systems running Gtk+ and dark themes.
+
+2009-11-18  Carlos Alberto Cortez <calberto.cortez at gmail.com>
+
+	* DataGrid.cs: Add a new internal property to get the maximum possible
+	visible rows in the grid. We cannot use VisibleRowCount since this
+	value can, depending on the scroll position, return a +1 or -1 value,
+	so we need an absolute way to know whether we need a scroll bar or
+	not. Also, update VLargeChange to avoid code duplication.
+	Fixes a vertical scroll mismatch happening trying to add a new row
+	while the scrollbar has reached its maximum value.
+
 2009-11-11  Carlos Alberto Cortez <calberto.cortez at gmail.com> 
 
 	* DataGridTextBoxColumn.cs:
diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ComboBox.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ComboBox.cs
index 2e1fde5..8da7cf3 100644
--- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ComboBox.cs
+++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ComboBox.cs
@@ -1598,6 +1598,12 @@ namespace System.Windows.Forms
 				listbox_ctrl.Dispose ();
 				listbox_ctrl = null;
 			}
+#if NET_2_0
+			 // The auto complete list could have been shown after the listbox,
+			 // so make sure it's hidden.
+			 if (textbox_ctrl != null)
+				 textbox_ctrl.HideAutoCompleteList ();
+#endif
 		}
 		
 		private int FindStringCaseInsensitive (string search)
@@ -2522,11 +2528,11 @@ namespace System.Windows.Forms
 				else { // DropDown or DropDownList
 					
 					width = owner.DropDownWidth;
-					int count = (owner.Items.Count <= owner.MaxDropDownItems) ? owner.Items.Count : owner.MaxDropDownItems;
+					int visible_items_count = (owner.Items.Count <= owner.MaxDropDownItems) ? owner.Items.Count : owner.MaxDropDownItems;
 					
 					if (owner.DrawMode == DrawMode.OwnerDrawVariable) {
 						height = 0;
-						for (int i = 0; i < count; i++) {
+						for (int i = 0; i < visible_items_count; i++) {
 							height += owner.GetItemHeight (i);
 						}
 
@@ -2535,14 +2541,15 @@ namespace System.Windows.Forms
 					} else	{
 #if NET_2_0
 						if (owner.DropDownHeight == default_drop_down_height) { // ignore DropDownHeight
-							height = owner.ItemHeight * count;
+							height = owner.ItemHeight * visible_items_count;
 							show_scrollbar = owner.Items.Count > owner.MaxDropDownItems;
 						} else {
+							// ignore visible items count, and use manual height instead
 							height = owner.DropDownHeight;
-							show_scrollbar = (count * owner.ItemHeight) > height;
+							show_scrollbar = (owner.Items.Count * owner.ItemHeight) > height;
 						}
 #else		
-						height = owner.ItemHeight * count;
+						height = owner.ItemHeight * visible_items_count;
 						show_scrollbar = owner.Items.Count > owner.MaxDropDownItems;
 #endif
 					}
diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGrid.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGrid.cs
index 13a43c7..2a86317 100644
--- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGrid.cs
+++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/DataGrid.cs
@@ -489,7 +489,8 @@ namespace System.Windows.Forms
 					throw new Exception ("CurrentCell cannot be set at this time.");
 				}
 
-				if (current_cell.Equals (value)) {
+				/* Even if we are on the same cell, we could need to actually start edition */
+				if (current_cell.Equals (value) && is_editing) {
 					setting_current_cell = false;
 					return;
 				}
@@ -955,6 +956,14 @@ namespace System.Windows.Forms
 		internal int FirstVisibleRow {
 			get { return first_visible_row; }
 		}
+
+		// As opposed to VisibleRowCount, this value is the maximum
+		// *possible* number of visible rows given our area.
+		internal int MaxVisibleRowCount {
+			get {
+				return cells_area.Height / RowHeight;
+			}
+		}
 		
 		internal int RowsCount {
 			get { return ListManager != null ? ListManager.Count : 0; }
@@ -2037,8 +2046,10 @@ namespace System.Windows.Forms
 					selected_rows.Keys.CopyTo (rows, 0);
 
 					// reverse order to keep index sanity
+					int edit_row_index = ShowEditRow ? RowsCount : -1; // new cell is +1
 					for (int i = rows.Length - 1; i >= 0; i--)
-						ListManager.RemoveAt (rows [i]);
+						if (rows [i] != edit_row_index)
+							ListManager.RemoveAt (rows [i]);
 
 					CalcAreasAndInvalidate ();
 				}
@@ -2520,6 +2531,13 @@ namespace System.Windows.Forms
 
 		private void OnListManagerPositionChanged (object sender, EventArgs e)
 		{
+			// Set the field directly, as we are empty now and using CurrentRow
+			// directly would add a new row in this case.
+			if (list_manager.Count == 0) {
+				current_cell = new DataGridCell (0, 0);
+				return;
+			}
+
 			from_positionchanged_handler = true;
 			CurrentRow = list_manager.Position;
 			from_positionchanged_handler = false;
@@ -2593,7 +2611,8 @@ namespace System.Windows.Forms
 			if (!CurrentTableStyle.GridColumnStyles[CurrentColumn].bound)
 				return;
 
-			if (ListManager != null && ListManager.Count == 0)
+			// if we don't have any rows nor the "new" cell, there's nothing to do
+			if (ListManager != null && (ListManager.Count == 0 && !ListManager.AllowNew))
 				return;
 
 			is_editing = true;
@@ -3013,7 +3032,7 @@ namespace System.Windows.Forms
 				UpdateVisibleRowCount ();
 
 				needHoriz = (width_of_all_columns > visible_cells_width);
-				needVert = (allrows > visible_row_count);
+				needVert = (allrows > MaxVisibleRowCount);
 			}
 
 			int horiz_scrollbar_width = ClientRectangle.Width;
@@ -3345,8 +3364,7 @@ namespace System.Windows.Forms
 
 		int VLargeChange {
 			get { 
-				// the possible number of visible rows
-				return cells_area.Height / RowHeight;
+				return MaxVisibleRowCount;
 			}
 		}
 
diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/GroupBoxRenderer.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/GroupBoxRenderer.cs
index e2832ba..0f4e5b6 100644
--- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/GroupBoxRenderer.cs
+++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/GroupBoxRenderer.cs
@@ -111,7 +111,8 @@ namespace System.Windows.Forms
 
 				if (groupBoxText != String.Empty) {
 					if (textColor == Color.Empty)
-						textColor = SystemColors.ControlText;
+						textColor = state == GroupBoxState.Normal ? SystemColors.ControlText :
+							SystemColors.GrayText;
 					TextRenderer.DrawText (g, groupBoxText, font, new Point (bounds.Left + 8, bounds.Top), textColor, flags);
 				}
 			}
diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/MessageBox.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/MessageBox.cs
index 3c1e25d..1803aa9 100644
--- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/MessageBox.cs
+++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/MessageBox.cs
@@ -69,6 +69,7 @@ namespace System.Windows.Forms
 			string help_keyword;
 			HelpNavigator help_navigator;
 			object help_param;
+			AlertType		alert_type;
 			#endregion	// MessageBoxFrom Local Variables
 			
 			#region MessageBoxForm Constructors
@@ -81,26 +82,31 @@ namespace System.Windows.Forms
 				switch (icon) {
 					case MessageBoxIcon.None: {
 						icon_image = null;
+						alert_type = AlertType.Default;
 						break;
 					}
 
 					case MessageBoxIcon.Error: {		// Same as MessageBoxIcon.Hand and MessageBoxIcon.Stop
 						icon_image = SystemIcons.Error;
+						alert_type = AlertType.Error;
 						break;
 					}
 
 					case MessageBoxIcon.Question: {
  						icon_image = SystemIcons.Question;
+						alert_type = AlertType.Question;
 						break;
 					}
 
 					case MessageBoxIcon.Asterisk: {		// Same as MessageBoxIcon.Information
 						icon_image = SystemIcons.Information;
+						alert_type = AlertType.Information;
 						break;
 					}
 
 					case MessageBoxIcon.Warning: {		// Same as MessageBoxIcon.Exclamation:
 						icon_image = SystemIcons.Warning;
+						alert_type = AlertType.Warning;
 						break;
 					}
 				}
@@ -190,7 +196,7 @@ namespace System.Windows.Forms
 				if (Owner != null)
 					TopMost = Owner.TopMost;
 					
-				XplatUI.AudibleAlert ();
+				XplatUI.AudibleAlert (alert_type);
 				this.ShowDialog ();
 
 				return this.DialogResult;
diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/RadioButton.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/RadioButton.cs
index 14ca465..35af67e 100644
--- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/RadioButton.cs
+++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/RadioButton.cs
@@ -182,7 +182,7 @@ namespace System.Windows.Forms {
 			ThemeEngine.Current.CalculateRadioButtonTextAndImageLayout (this, Point.Empty, out glyph_rectangle, out text_rectangle, out image_rectangle);
 
 			// Draw our button
-			if (FlatStyle != FlatStyle.System)
+			if (FlatStyle != FlatStyle.System && Appearance != Appearance.Button)
 				ThemeEngine.Current.DrawRadioButton (pe.Graphics, this, glyph_rectangle, text_rectangle, image_rectangle, pe.ClipRectangle);
 			else
 				ThemeEngine.Current.DrawRadioButton (pe.Graphics, this.ClientRectangle, this);
diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/RichTextBox.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/RichTextBox.cs
index 44e6328..5b5b62a 100644
--- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/RichTextBox.cs
+++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/RichTextBox.cs
@@ -443,6 +443,8 @@ namespace System.Windows.Forms {
 			}
 
 			set {
+				// TextBox/TextBoxBase don't set Modified in this same property
+				Modified = true;
 				base.SelectedText = value;
 			}
 		}
diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TextBox.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TextBox.cs
index 4964b96..5ad95c1 100644
--- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TextBox.cs
+++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TextBox.cs
@@ -996,6 +996,8 @@ namespace System.Windows.Forms {
 				HighlightedIndex = -1;
 
 				Show ();
+				// make sure we are on top - call the raw routine, since we are parentless
+				XplatUI.SetZOrder (Handle, IntPtr.Zero, true, false);
 				Invalidate ();
 			}
 
diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TextBoxBase.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TextBoxBase.cs
index 243b923..4151589 100644
--- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TextBoxBase.cs
+++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TextBoxBase.cs
@@ -1597,7 +1597,7 @@ namespace System.Windows.Forms
 						OnTextChanged(EventArgs.Empty);
 
 					} else {
-						XplatUI.AudibleAlert();
+						XplatUI.AudibleAlert(AlertType.Default);
 					}
 					return;
 				} else if (ch == 8) {
diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ToolStripMenuItem.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ToolStripMenuItem.cs
index ea81064..756e603 100644
--- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ToolStripMenuItem.cs
+++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/ToolStripMenuItem.cs
@@ -109,11 +109,7 @@ namespace System.Windows.Forms
 				}
 			}
 			set {
-				if (this.checked_state != (value ? CheckState.Checked : CheckState.Unchecked)) {
-					this.checked_state = value ? CheckState.Checked : CheckState.Unchecked;
-					this.Invalidate ();
-					this.OnCheckedChanged (EventArgs.Empty);
-				}
+				CheckState = value ? CheckState.Checked : CheckState.Unchecked;
 			}
 		}
 
@@ -138,8 +134,12 @@ namespace System.Windows.Forms
 				if (!Enum.IsDefined (typeof (CheckState), value))
 					throw new InvalidEnumArgumentException (string.Format ("Enum argument value '{0}' is not valid for CheckState", value));
 
+				if (value == checked_state)
+					return;
+
 				this.checked_state = value;
 				this.Invalidate ();
+				this.OnCheckedChanged (EventArgs.Empty);
 				this.OnCheckStateChanged (EventArgs.Empty);
 			}
 		}
@@ -344,8 +344,9 @@ namespace System.Windows.Forms
 			// If DropDown.ShowImageMargin is false, we don't display the image
 			Image draw_image = this.UseImageMargin ? this.Image : null;
 			
-			// Figure out our text color
-			Color font_color = this.ForeColor == SystemColors.ControlText ? SystemColors.MenuText : this.ForeColor;
+			// Disable this color detection until we do the color detection for ToolStrip *completely*
+			// Color font_color = this.ForeColor == SystemColors.ControlText ? SystemColors.MenuText : this.ForeColor;
+			Color font_color = ForeColor;
 			
 			if ((this.Selected || this.Pressed) && this.IsOnDropDown && font_color == SystemColors.MenuText)
 				font_color = SystemColors.HighlightText;
diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TrackBar.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TrackBar.cs
index 6b90892..a6edb2b 100644
--- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TrackBar.cs
+++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/TrackBar.cs
@@ -537,21 +537,31 @@ namespace System.Windows.Forms
 		public int Value {
 			get { return position; }
 			set {
-				if (value < Minimum || value > Maximum)
-					throw new ArgumentException(
-						string.Format("'{0}' is not a valid value for 'Value'. 'Value' should be between 'Minimum' and 'Maximum'", value));
-				
-				if (position != value) {													
-					position = value;					
+				SetValue (value, false);
+			}
+		}
+
+		void SetValue (int value, bool fire_onscroll)
+		{
+			if (value < Minimum || value > Maximum)
+				throw new ArgumentException(
+						String.Format ("'{0}' is not a valid value for 'Value'. 'Value' should be between 'Minimum' and 'Maximum'", value));
 
-					// XXX any reason we don't call OnValueChanged here?
-					EventHandler eh = (EventHandler)(Events [ValueChangedEvent]);
-					if (eh != null)
-						eh (this, EventArgs.Empty);
+			if (position == value)
+				return;
 
-					Invalidate (thumb_area);
-				}				
-			}
+			position = value;
+
+			// OnScroll goes before OnValueChanged
+			if (fire_onscroll)
+				OnScroll (EventArgs.Empty);
+
+			// XXX any reason we don't call OnValueChanged here?
+			EventHandler eh = (EventHandler)(Events [ValueChangedEvent]);
+			if (eh != null)
+				eh (this, EventArgs.Empty);
+
+			Invalidate (thumb_area);
 		}
 
 		#endregion //Public Properties
@@ -695,14 +705,14 @@ namespace System.Windows.Forms
 		private void UpdatePos (int newPos, bool update_trumbpos)
 		{
 			if (newPos < minimum){
-				Value = minimum;
+				SetValue (minimum, true);
 			}
 			else {
 				if (newPos > maximum) {
-					Value = maximum;
+					SetValue (maximum, true);
 				}
 				else {
-					Value = newPos;
+					SetValue (newPos, true);
 				}
 			}
 		}
@@ -712,7 +722,6 @@ namespace System.Windows.Forms
     		{    			
 			UpdatePos (position + LargeChange, true);
 			Invalidate (thumb_area);
-			OnScroll (new EventArgs ());
     		}
 
 			// Used by UIA implementation, so making internal
@@ -720,21 +729,18 @@ namespace System.Windows.Forms
     		{
 			UpdatePos (position - LargeChange, true);
 			Invalidate (thumb_area);
-			OnScroll (new EventArgs ());
     		}
 
 		private void SmallIncrement ()
     		{    			
 			UpdatePos (position + SmallChange, true);
 			Invalidate (thumb_area);
-			OnScroll (new EventArgs ());
     		}
 
     		private void SmallDecrement ()
     		{
 			UpdatePos (position - SmallChange, true);
 			Invalidate (thumb_area);
-			OnScroll (new EventArgs ());	
     		}
     		
 		private void OnMouseUpTB (object sender, MouseEventArgs e)
@@ -821,13 +827,9 @@ namespace System.Windows.Forms
     			mouse_moved = true;
 
     			/* Moving the thumb */
-    			if (thumb_pressed) {
-    				int old_value = Value;
-				Value = ThemeEngine.Current.TrackBarValueFromMousePosition (e.X, e.Y, this);			
-    				
-    				if (Value != old_value)
-    					OnScroll (EventArgs.Empty);
-			}
+    			if (thumb_pressed)
+				SetValue (ThemeEngine.Current.TrackBarValueFromMousePosition (e.X, e.Y, this), true);
+
 			ThumbEntered = GetRealThumbRectangle ().Contains (e.Location);
     		}
 
@@ -892,16 +894,16 @@ namespace System.Windows.Forms
 
 			case Keys.Home:
 				if (horiz)
-					Value = Minimum;
+					SetValue (Minimum, true);
 				else
-					Value = Maximum;
+					SetValue (Maximum, true);
 				break;
 
 			case Keys.End:
 				if (horiz)
-					Value = Maximum;
+					SetValue (Maximum, true);
 				else
-					Value = Minimum;
+					SetValue (Minimum, true);
 				break;
 
 			default:
diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUI.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUI.cs
index c04f741..9728486 100644
--- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUI.cs
+++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUI.cs
@@ -464,11 +464,11 @@ namespace System.Windows.Forms {
 			driver.Activate(handle);
 		}
 
-		internal static void AudibleAlert() {
+		internal static void AudibleAlert(AlertType alert) {
 			#if DriverDebug
 				Console.WriteLine("AudibleAlert(): Called");
 			#endif
-			driver.AudibleAlert();
+			driver.AudibleAlert(alert);
 		}
 
 		internal static bool CalculateWindowRect(ref Rectangle ClientRect, CreateParams cp, Menu menu, out Rectangle WindowRect) {
diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUICarbon.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUICarbon.cs
index c11f32f..4529a7e 100644
--- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUICarbon.cs
+++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUICarbon.cs
@@ -791,8 +791,8 @@ namespace System.Windows.Forms {
 			ActiveWindow = handle;
 		}
 
-		internal override void AudibleAlert() {
-			throw new NotImplementedException();
+		internal override void AudibleAlert(AlertType alert) {
+			AlertSoundPlay ();
 		}
 
 		internal override void CaretVisible (IntPtr hwnd, bool visible) {
@@ -2364,6 +2364,9 @@ namespace System.Windows.Forms {
 		[DllImport("/System/Library/Frameworks/Carbon.framework/Versions/Current/Carbon")]
 		extern static short GetMBarHeight ();
 		
+		[DllImport("/System/Library/Frameworks/Carbon.framework/Versions/Current/Carbon")]
+		extern static void AlertSoundPlay ();
+
 		#region Cursor imports
 		[DllImport("/System/Library/Frameworks/Carbon.framework/Versions/Current/Carbon")]
 		extern static Carbon.HIRect CGDisplayBounds (IntPtr displayID);
diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIDriver.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIDriver.cs
index bf8efc0..d326597 100644
--- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIDriver.cs
+++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIDriver.cs
@@ -274,7 +274,7 @@ namespace System.Windows.Forms {
 		internal abstract event EventHandler Idle;
 
 		#region XplatUI Driver Methods
-		internal abstract void AudibleAlert();
+		internal abstract void AudibleAlert(AlertType alert);
 
 		internal abstract void EnableThemes();
 
diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIStructs.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIStructs.cs
index c203090..d9fe8d0 100644
--- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIStructs.cs
+++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIStructs.cs
@@ -874,5 +874,13 @@ namespace System.Windows.Forms {
 		SC_MONITORPOWER = 0xF170,
 		SC_CONTEXTHELP  = 0xF180
 	}
+
+	internal enum AlertType {
+		Default		= 1,
+		Error		= 2,
+		Question	= 3,
+		Warning		= 4,
+		Information	= 5
+	}
 }
 
diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIWin32.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIWin32.cs
index 63ea893..f3d7ca3 100644
--- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIWin32.cs
+++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIWin32.cs
@@ -1568,8 +1568,24 @@ namespace System.Windows.Forms {
 			Console.WriteLine("Xplat version $revision: $");
 		}
 
-		internal override void AudibleAlert() {
-			Win32PlaySound("Default", IntPtr.Zero, SndFlags.SND_ALIAS | SndFlags.SND_ASYNC | SndFlags.SND_NOSTOP | SndFlags.SND_NOWAIT);
+		string GetSoundAlias (AlertType alert)
+		{
+			switch (alert) {
+				case AlertType.Error:
+					return "SystemHand";
+				case AlertType.Question:
+					return "SystemQuestion";
+				case AlertType.Warning:
+					return "SystemExclamation";
+				case AlertType.Information:
+					return "SystemAsterisk";
+				default:
+					return "SystemDefault";
+			}
+		}
+
+		internal override void AudibleAlert(AlertType alert) {
+			Win32PlaySound(GetSoundAlias (alert), IntPtr.Zero, SndFlags.SND_ALIAS_ID | SndFlags.SND_ASYNC | SndFlags.SND_NOSTOP | SndFlags.SND_NOWAIT);
 		}
 
 		internal override void GetDisplaySize(out Size size) {
diff --git a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIX11.cs b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIX11.cs
index 98ed4ac..a71d8c6 100644
--- a/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIX11.cs
+++ b/mcs/class/Managed.Windows.Forms/System.Windows.Forms/XplatUIX11.cs
@@ -2577,7 +2577,7 @@ namespace System.Windows.Forms {
 			}
 		}
 
-		internal override void AudibleAlert() {
+		internal override void AudibleAlert(AlertType alert) {
 			XBell(DisplayHandle, 0);
 			return;
 		}
@@ -3362,7 +3362,7 @@ namespace System.Windows.Forms {
 							case HitTest.HTBOTTOMLEFT:	handle = Cursors.SizeNESW.handle; break;
 							case HitTest.HTBOTTOMRIGHT:	handle = Cursors.SizeNWSE.handle; break;
 							case HitTest.HTERROR:		if ((msg.LParam.ToInt32() >> 16) == (int)Msg.WM_LBUTTONDOWN) {
-												AudibleAlert();
+												AudibleAlert(AlertType.Default);
 											}
 											handle = Cursors.Default.handle;
 											break;
diff --git a/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog b/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog
index 929f117..faf0e67 100644
--- a/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog
+++ b/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ChangeLog
@@ -1,3 +1,16 @@
+2010-01-21  Carlos Alberto Cortez <calberto.cortez at gmail.com>
+
+	* RichTextBoxTest.cs: New test for the Modified property.
+
+2010-01-10  Carlos Alberto Cortez <calberto.cortez at gmail.com>
+
+	* ToolStripMenuItemTest: New test for the events related to the check
+	state.
+
+2010-01-09  Carlos Alberto Cortez <calberto.cortez at gmail.com>
+
+	* TrackBarTest.cs: New test for events.
+
 2009-11-11  Carlos Alberto Cortez <calberto.cortez at gmail.com>
 
 	* ComboBoxTest.cs: New test case for data binding and Text
diff --git a/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/RichTextBoxTest.cs b/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/RichTextBoxTest.cs
index e171224..388a1eb 100644
--- a/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/RichTextBoxTest.cs
+++ b/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/RichTextBoxTest.cs
@@ -292,6 +292,23 @@ namespace MonoTests.System.Windows.Forms
 		}
 
 		[Test]
+		public void Modified ()
+		{
+			RichTextBox rtb = new RichTextBox ();
+			Assert.AreEqual (false, rtb.Modified, "#A1");
+
+			rtb.SelectedText = "mono";
+			Assert.AreEqual (true, rtb.Modified, "#B1");
+
+			rtb.Modified = false;
+			Assert.AreEqual (false, rtb.Modified, "#C1");
+
+			// Only SelectedText seems to cause a change in Modified, as opposed to Text
+			rtb.Text = "moon";
+			Assert.AreEqual (false, rtb.Modified, "#D1");
+		}
+
+		[Test]
 		public void ReadOnly_BackColor_Set ()
 		{
 			RichTextBox rtb = new RichTextBox ();
diff --git a/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ToolStripMenuItemTest.cs b/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ToolStripMenuItemTest.cs
index c9be2be..c917b03 100644
--- a/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ToolStripMenuItemTest.cs
+++ b/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/ToolStripMenuItemTest.cs
@@ -287,6 +287,42 @@ namespace MonoTests.System.Windows.Forms
 				return this.ProcessCmdKey (ref m, keys);
 			}
 		}
+
+		[Test]
+		public void EventsTest ()
+		{
+			ToolStripMenuItem tsmi = new ToolStripMenuItem ("Sample");
+			tsmi.CheckStateChanged += new EventHandler (tsmi_CheckStateChanged);
+			tsmi.CheckedChanged += new EventHandler (tsmi_CheckedChanged);
+			event_log = String.Empty;
+
+			Assert.AreEqual (false, tsmi.Checked, "#A1");
+			Assert.AreEqual (CheckState.Unchecked, tsmi.CheckState, "#A2");
+
+			tsmi.Checked = true;
+			Assert.AreEqual (true, tsmi.Checked, "#B1");
+			Assert.AreEqual (CheckState.Checked, tsmi.CheckState, "#B2");
+			Assert.AreEqual ("CheckedChanged=True;CheckStateChanged=Checked;", event_log, "#B3");
+
+			event_log = String.Empty;
+
+			tsmi.CheckState = CheckState.Unchecked;
+			Assert.AreEqual (false, tsmi.Checked, "#C1");
+			Assert.AreEqual (CheckState.Unchecked, tsmi.CheckState, "#C2");
+			Assert.AreEqual ("CheckedChanged=False;CheckStateChanged=Unchecked;", event_log, "#C3");
+		}
+
+		string event_log;
+
+		void tsmi_CheckedChanged (object sender, EventArgs e)
+		{
+			event_log += "CheckedChanged=" + ((ToolStripMenuItem)sender).Checked + ";";
+		}
+
+		void tsmi_CheckStateChanged (object sender, EventArgs e)
+		{
+			event_log += "CheckStateChanged=" + ((ToolStripMenuItem)sender).CheckState + ";";
+		}
 	}
 }
 #endif
diff --git a/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/TrackBarTest.cs b/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/TrackBarTest.cs
index a994d17..fbb6168 100644
--- a/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/TrackBarTest.cs
+++ b/mcs/class/Managed.Windows.Forms/Test/System.Windows.Forms/TrackBarTest.cs
@@ -283,6 +283,33 @@ namespace MonoTests.System.Windows.Forms
 
 			Assert.AreEqual(handle, handle, "Removes warning");
 		}
+
+		[Test]
+		public void EventsTest ()
+		{
+			TrackBar trackbar = new TrackBar ();
+			trackbar.Maximum = 10;
+			trackbar.Minimum = 1;
+			trackbar.LargeChange = 2;
+
+			trackbar.ValueChanged += new EventHandler (trackbar_ValueChanged);
+			trackbar.Scroll += new EventHandler (trackbar_Scroll);
+
+			trackbar.Value = 6;
+			Assert.AreEqual ("ValueChanged=6;", event_log, "#A1");
+		}
+
+		string event_log;
+
+		void trackbar_Scroll (object sender, EventArgs e)
+		{
+			event_log += "Scroll=" + ((TrackBar)sender).Value + ";";
+		}
+
+		void trackbar_ValueChanged (object sender, EventArgs e)
+		{
+			event_log += "ValueChanged=" + ((TrackBar)sender).Value + ";";
+		}
 	}
 }
 
diff --git a/mcs/class/RabbitMQ.Client/ChangeLog b/mcs/class/RabbitMQ.Client/ChangeLog
index cc93efa..3fcf1b8 100644
--- a/mcs/class/RabbitMQ.Client/ChangeLog
+++ b/mcs/class/RabbitMQ.Client/ChangeLog
@@ -1,3 +1,12 @@
+2009-12-23  Jo Shields  <directhex at apebox.org>
+
+	* docs/specs/Makefile: Use compiled Mono, not system Mono (fixes 
+	  broken build on systems without Mono already installed)
+
+2009-12-19  Michael Barker  <mike at middlesoft.co.uk>
+
+	* Added stripped xml to avoid licensing issues.
+
 2009-05-27  Andrew Jorgensen  <ajorgensen at novell.com>
 
 	* Makefile: Fixed dist
diff --git a/mcs/class/RabbitMQ.Client/Makefile b/mcs/class/RabbitMQ.Client/Makefile
index 590100a..5dfe98d 100644
--- a/mcs/class/RabbitMQ.Client/Makefile
+++ b/mcs/class/RabbitMQ.Client/Makefile
@@ -1,12 +1,9 @@
 thisdir = class/RabbitMQ.Client
-#SUBDIRS = src/bootstrap src/apigen docs/specs src/client
-SUBDIRS = src/client
+SUBDIRS = src/apigen docs/specs src/client
+#SUBDIRS = src/client
 include ../../build/rules.make
 
 DISTFILES = \
-	docs/specs/autogenerated-api-0-8.cs \
-	docs/specs/autogenerated-api-0-9.cs \
-	docs/specs/autogenerated-api-qpid-0-8.cs \
 	src/util/DebugUtil.cs \
 	src/util/NetworkBinaryReader.cs \
 	src/util/NetworkBinaryWriter.cs \
@@ -14,7 +11,17 @@ DISTFILES = \
 	src/util/Semaphore.cs \
 	src/util/Either.cs \
 	src/util/SharedQueue.cs \
-	src/util/XmlUtil.cs
+	src/util/XmlUtil.cs \
+	src/apigen/AmqpClass.cs \
+	src/apigen/AmqpEntity.cs \
+	src/apigen/AmqpField.cs \
+	src/apigen/AmqpMethod.cs \
+	src/apigen/Apigen.cs \
+	src/apigen/Makefile \
+	docs/specs/amqp0-8.stripped.xml \
+	docs/specs/amqp0-9.stripped.xml \
+	docs/specs/qpid-amqp.0-8.stripped.xml \
+	docs/specs/Makefile
 
 all-local install-local clean-local test-local run-test-local run-test-ondotnet-local uninstall-local doc-update-local:
 
diff --git a/mcs/class/RabbitMQ.Client/docs/specs/Makefile b/mcs/class/RabbitMQ.Client/docs/specs/Makefile
new file mode 100644
index 0000000..a3b552c
--- /dev/null
+++ b/mcs/class/RabbitMQ.Client/docs/specs/Makefile
@@ -0,0 +1,33 @@
+thisdir = class/RabbitMQ.Client/docs/specs
+SUBDIRS =
+include ../../../../build/rules.make
+
+all-local: autogenerated-api-0-9.cs autogenerated-api-0-8.cs autogenerated-api-qpid-0-8.cs
+
+copy:
+	cp ../../../lib/net_2_0/apigen-bootstrap.dll ../../src/apigen/.
+
+autogenerated-api-0-9.cs: amqp0-9.stripped.xml
+	MONO_PATH="$(topdir)/class/lib/$(PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) ../../src/apigen/RabbitMQ.Client.Apigen.exe /n:v0_9 "/apiName:AMQP_0_9" $^ $@
+
+autogenerated-api-0-8.cs: amqp0-8.stripped.xml
+	MONO_PATH="$(topdir)/class/lib/$(PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) ../../src/apigen/RabbitMQ.Client.Apigen.exe /n:v0_8 "/apiName:AMQP_0_8" $^ $@
+	
+autogenerated-api-qpid-0-8.cs: qpid-amqp.0-8.stripped.xml
+	MONO_PATH="$(topdir)/class/lib/$(PROFILE)$(PLATFORM_PATH_SEPARATOR)$$MONO_PATH" $(RUNTIME) $(RUNTIME_FLAGS) ../../src/apigen/RabbitMQ.Client.Apigen.exe /n:v0_8qpid "/apiName:AMQP_0_8_QPID" $^ $@
+
+install-local:
+
+clean-local:
+	rm -f ../../src/apigen/apigen-bootstrap.dll
+	rm -f autogenerated-api*.cs
+	
+test-local:
+
+run-test-local:
+
+run-test-ondotnet-local:
+
+DISTFILES =
+
+dist-local:
diff --git a/mcs/class/RabbitMQ.Client/docs/specs/amqp0-8.stripped.xml b/mcs/class/RabbitMQ.Client/docs/specs/amqp0-8.stripped.xml
new file mode 100644
index 0000000..d1fd2c0
--- /dev/null
+++ b/mcs/class/RabbitMQ.Client/docs/specs/amqp0-8.stripped.xml
@@ -0,0 +1,771 @@
+<?xml version="1.0"?>
+<!--
+Copyright (c) 2009 AMQP Working Group.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+3. The name of the author may not be used to endorse or promote products
+derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<amqp major="8" minor="0" port="5672">
+  <constant name="frame method" value="1"/>
+  <constant name="frame header" value="2"/>
+  <constant name="frame body" value="3"/>
+  <constant name="frame oob method" value="4"/>
+  <constant name="frame oob header" value="5"/>
+  <constant name="frame oob body" value="6"/>
+  <constant name="frame trace" value="7"/>
+  <constant name="frame heartbeat" value="8"/>
+  <constant name="frame min size" value="4096"/>
+  <constant name="frame end" value="206"/>
+  <constant name="reply success" value="200"/>
+  <constant name="not delivered" value="310" class="soft error"/>
+  <constant name="content too large" value="311" class="soft error"/>
+  <constant name="connection forced" value="320" class="hard error"/>
+  <constant name="invalid path" value="402" class="hard error"/>
+  <constant name="access refused" value="403" class="soft error"/>
+  <constant name="not found" value="404" class="soft error"/>
+  <constant name="resource locked" value="405" class="soft error"/>
+  <constant name="frame error" value="501" class="hard error"/>
+  <constant name="syntax error" value="502" class="hard error"/>
+  <constant name="command invalid" value="503" class="hard error"/>
+  <constant name="channel error" value="504" class="hard error"/>
+  <constant name="resource error" value="506" class="hard error"/>
+  <constant name="not allowed" value="530" class="hard error"/>
+  <constant name="not implemented" value="540" class="hard error"/>
+  <constant name="internal error" value="541" class="hard error"/>
+  <domain name="access ticket" type="short">
+    <assert check="ne" value="0"/>
+  </domain>
+  <domain name="class id" type="short"/>
+  <domain name="consumer tag" type="shortstr"/>
+  <domain name="delivery tag" type="longlong"/>
+  <domain name="exchange name" type="shortstr">
+    <assert check="length" value="127"/>
+  </domain>
+  <domain name="known hosts" type="shortstr"/>
+  <domain name="method id" type="short"/>
+  <domain name="no ack" type="bit"/>
+  <domain name="no local" type="bit"/>
+  <domain name="path" type="shortstr">
+    <assert check="notnull"/>
+    <assert check="syntax" rule="path"/>
+    <assert check="length" value="127"/>
+  </domain>
+  <domain name="peer properties" type="table"/>
+  <domain name="queue name" type="shortstr">
+    <assert check="length" value="127"/>
+  </domain>
+  <domain name="redelivered" type="bit"/>
+  <domain name="reply code" type="short">
+    <assert check="notnull"/>
+  </domain>
+  <domain name="reply text" type="shortstr">
+    <assert check="notnull"/>
+  </domain>
+  <class name="connection" handler="connection" index="10">
+    <chassis name="server" implement="MUST"/>
+    <chassis name="client" implement="MUST"/>
+    <method name="start" synchronous="1" index="10">
+      <chassis name="client" implement="MUST"/>
+      <response name="start-ok"/>
+      <field name="version major" type="octet"/>
+      <field name="version minor" type="octet"/>
+      <field name="server properties" domain="peer properties"/>
+      <field name="mechanisms" type="longstr">
+        <see name="security mechanisms"/>
+        <assert check="notnull"/>
+      </field>
+      <field name="locales" type="longstr">
+        <assert check="notnull"/>
+      </field>
+    </method>
+    <method name="start-ok" synchronous="1" index="11">
+      <chassis name="server" implement="MUST"/>
+      <field name="client properties" domain="peer properties"/>
+      <field name="mechanism" type="shortstr">
+        <assert check="notnull"/>
+      </field>
+      <field name="response" type="longstr">
+        <assert check="notnull"/>
+      </field>
+      <field name="locale" type="shortstr">
+        <assert check="notnull"/>
+      </field>
+    </method>
+    <method name="secure" synchronous="1" index="20">
+      <chassis name="client" implement="MUST"/>
+      <response name="secure-ok"/>
+      <field name="challenge" type="longstr">
+        <see name="security mechanisms"/>
+      </field>
+    </method>
+    <method name="secure-ok" synchronous="1" index="21">
+      <chassis name="server" implement="MUST"/>
+      <field name="response" type="longstr">
+        <assert check="notnull"/>
+      </field>
+    </method>
+    <method name="tune" synchronous="1" index="30">
+      <chassis name="client" implement="MUST"/>
+      <response name="tune-ok"/>
+      <field name="channel max" type="short"/>
+      <field name="frame max" type="long"/>
+      <field name="heartbeat" type="short"/>
+    </method>
+    <method name="tune-ok" synchronous="1" index="31">
+      <chassis name="server" implement="MUST"/>
+      <field name="channel max" type="short">
+        <assert check="notnull"/>
+        <assert check="le" method="tune" field="channel max"/>
+      </field>
+      <field name="frame max" type="long"/>
+      <field name="heartbeat" type="short"/>
+    </method>
+    <method name="open" synchronous="1" index="40">
+      <chassis name="server" implement="MUST"/>
+      <response name="open-ok"/>
+      <response name="redirect"/>
+      <field name="virtual host" domain="path">
+        <assert check="regexp" value="^[a-zA-Z0-9/-_]+$"/>
+      </field>
+      <field name="capabilities" type="shortstr"/>
+      <field name="insist" type="bit"/>
+    </method>
+    <method name="open-ok" synchronous="1" index="41">
+      <chassis name="client" implement="MUST"/>
+      <field name="known hosts" domain="known hosts"/>
+    </method>
+    <method name="redirect" synchronous="1" index="50">
+      <chassis name="client" implement="MAY"/>
+      <field name="host" type="shortstr">
+        <assert check="notnull"/>
+      </field>
+      <field name="known hosts" domain="known hosts"/>
+    </method>
+    <method name="close" synchronous="1" index="60">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <response name="close-ok"/>
+      <field name="reply code" domain="reply code"/>
+      <field name="reply text" domain="reply text"/>
+      <field name="class id" domain="class id"/>
+      <field name="method id" domain="class id"/>
+    </method>
+    <method name="close-ok" synchronous="1" index="61">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+    </method>
+  </class>
+  <class name="channel" handler="channel" index="20">
+    <chassis name="server" implement="MUST"/>
+    <chassis name="client" implement="MUST"/>
+    <method name="open" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="open-ok"/>
+      <field name="out of band" type="shortstr">
+        <assert check="null"/>
+      </field>
+    </method>
+    <method name="open-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="flow" synchronous="1" index="20">
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+      <response name="flow-ok"/>
+      <field name="active" type="bit"/>
+    </method>
+    <method name="flow-ok" index="21">
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+      <field name="active" type="bit"/>
+    </method>
+    <method name="alert" index="30">
+      <chassis name="client" implement="MUST"/>
+      <field name="reply code" domain="reply code"/>
+      <field name="reply text" domain="reply text"/>
+      <field name="details" type="table"/>
+    </method>
+    <method name="close" synchronous="1" index="40">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <response name="close-ok"/>
+      <field name="reply code" domain="reply code"/>
+      <field name="reply text" domain="reply text"/>
+      <field name="class id" domain="class id"/>
+      <field name="method id" domain="method id"/>
+    </method>
+    <method name="close-ok" synchronous="1" index="41">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+    </method>
+  </class>
+  <class name="access" handler="connection" index="30">
+    <chassis name="server" implement="MUST"/>
+    <chassis name="client" implement="MUST"/>
+    <method name="request" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="request-ok"/>
+      <field name="realm" domain="path"/>
+      <field name="exclusive" type="bit"/>
+      <field name="passive" type="bit"/>
+      <field name="active" type="bit"/>
+      <field name="write" type="bit"/>
+      <field name="read" type="bit"/>
+    </method>
+    <method name="request-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+      <field name="ticket" domain="access ticket"/>
+    </method>
+  </class>
+  <class name="exchange" handler="channel" index="40">
+    <chassis name="server" implement="MUST"/>
+    <chassis name="client" implement="MUST"/>
+    <method name="declare" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="declare-ok"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="exchange" domain="exchange name">
+        <assert check="regexp" value="^[a-zA-Z0-9-_.:]+$"/>
+      </field>
+      <field name="type" type="shortstr">
+        <assert check="regexp" value="^[a-zA-Z0-9-_.:]+$"/>
+      </field>
+      <field name="passive" type="bit"/>
+      <field name="durable" type="bit"/>
+      <field name="auto delete" type="bit"/>
+      <field name="internal" type="bit"/>
+      <field name="nowait" type="bit"/>
+      <field name="arguments" type="table"/>
+    </method>
+    <method name="declare-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="delete" synchronous="1" index="20">
+      <chassis name="server" implement="MUST"/>
+      <response name="delete-ok"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="exchange" domain="exchange name">
+        <assert check="notnull"/>
+      </field>
+      <field name="if unused" type="bit"/>
+      <field name="nowait" type="bit"/>
+    </method>
+    <method name="delete-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+    </method>
+  </class>
+  <class name="queue" handler="channel" index="50">
+    <chassis name="server" implement="MUST"/>
+    <chassis name="client" implement="MUST"/>
+    <method name="declare" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="declare-ok"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="queue" domain="queue name">
+        <assert check="regexp" value="^[a-zA-Z0-9-_.:]*$"/>
+      </field>
+      <field name="passive" type="bit"/>
+      <field name="durable" type="bit"/>
+      <field name="exclusive" type="bit"/>
+      <field name="auto delete" type="bit"/>
+      <field name="nowait" type="bit"/>
+      <field name="arguments" type="table"/>
+    </method>
+    <method name="declare-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+      <field name="queue" domain="queue name">
+        <assert check="notnull"/>
+      </field>
+      <field name="message count" type="long"/>
+      <field name="consumer count" type="long"/>
+    </method>
+    <method name="bind" synchronous="1" index="20">
+      <chassis name="server" implement="MUST"/>
+      <response name="bind-ok"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="queue" domain="queue name"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" type="shortstr"/>
+      <field name="nowait" type="bit"/>
+      <field name="arguments" type="table"/>
+    </method>
+    <method name="bind-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="unbind" synchronous="1" index="50">
+      <chassis name="server" implement="MUST"/>
+      <response name="unbind-ok"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="queue" domain="queue name"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" domain="shortstr"/>
+      <field name="arguments" domain="table"/>
+    </method>
+    <method name="unbind-ok" synchronous="1" index="51">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="purge" synchronous="1" index="30">
+      <chassis name="server" implement="MUST"/>
+      <response name="purge-ok"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="queue" domain="queue name"/>
+      <field name="nowait" type="bit"/>
+    </method>
+    <method name="purge-ok" synchronous="1" index="31">
+      <chassis name="client" implement="MUST"/>
+      <field name="message count" type="long"/>
+    </method>
+    <method name="delete" synchronous="1" index="40">
+      <chassis name="server" implement="MUST"/>
+      <response name="delete-ok"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="queue" domain="queue name"/>
+      <field name="if unused" type="bit"/>
+      <field name="if empty" type="bit">
+        <test/>
+      </field>
+      <field name="nowait" type="bit"/>
+    </method>
+    <method name="delete-ok" synchronous="1" index="41">
+      <chassis name="client" implement="MUST"/>
+      <field name="message count" type="long"/>
+    </method>
+  </class>
+  <class name="basic" handler="channel" index="60">
+    <chassis name="server" implement="MUST"/>
+    <chassis name="client" implement="MAY"/>
+    <field name="content type" type="shortstr"/>
+    <field name="content encoding" type="shortstr"/>
+    <field name="headers" type="table"/>
+    <field name="delivery mode" type="octet"/>
+    <field name="priority" type="octet"/>
+    <field name="correlation id" type="shortstr"/>
+    <field name="reply to" type="shortstr"/>
+    <field name="expiration" type="shortstr"/>
+    <field name="message id" type="shortstr"/>
+    <field name="timestamp" type="timestamp"/>
+    <field name="type" type="shortstr"/>
+    <field name="user id" type="shortstr"/>
+    <field name="app id" type="shortstr"/>
+    <field name="cluster id" type="shortstr"/>
+    <method name="qos" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="qos-ok"/>
+      <field name="prefetch size" type="long"/>
+      <field name="prefetch count" type="short"/>
+      <field name="global" type="bit"/>
+    </method>
+    <method name="qos-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="consume" synchronous="1" index="20">
+      <chassis name="server" implement="MUST"/>
+      <response name="consume-ok"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="queue" domain="queue name"/>
+      <field name="consumer tag" domain="consumer tag"/>
+      <field name="no local" domain="no local"/>
+      <field name="no ack" domain="no ack"/>
+      <field name="exclusive" type="bit"/>
+      <field name="nowait" type="bit"/>
+    </method>
+    <method name="consume-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer tag" domain="consumer tag"/>
+    </method>
+    <method name="cancel" synchronous="1" index="30">
+      <chassis name="server" implement="MUST"/>
+      <response name="cancel-ok"/>
+      <field name="consumer tag" domain="consumer tag"/>
+      <field name="nowait" type="bit"/>
+    </method>
+    <method name="cancel-ok" synchronous="1" index="31">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer tag" domain="consumer tag"/>
+    </method>
+    <method name="publish" content="1" index="40">
+      <chassis name="server" implement="MUST"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" type="shortstr"/>
+      <field name="mandatory" type="bit"/>
+      <field name="immediate" type="bit"/>
+    </method>
+    <method name="return" content="1" index="50">
+      <chassis name="client" implement="MUST"/>
+      <field name="reply code" domain="reply code"/>
+      <field name="reply text" domain="reply text"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" type="shortstr"/>
+    </method>
+    <method name="deliver" content="1" index="60">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer tag" domain="consumer tag"/>
+      <field name="delivery tag" domain="delivery tag"/>
+      <field name="redelivered" domain="redelivered"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" type="shortstr"/>
+    </method>
+    <method name="get" synchronous="1" index="70">
+      <response name="get-ok"/>
+      <response name="get-empty"/>
+      <chassis name="server" implement="MUST"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="queue" domain="queue name"/>
+      <field name="no ack" domain="no ack"/>
+    </method>
+    <method name="get-ok" synchronous="1" content="1" index="71">
+      <chassis name="client" implement="MAY"/>
+      <field name="delivery tag" domain="delivery tag"/>
+      <field name="redelivered" domain="redelivered"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" type="shortstr"/>
+      <field name="message count" type="long"/>
+    </method>
+    <method name="get-empty" synchronous="1" index="72">
+      <chassis name="client" implement="MAY"/>
+      <field name="cluster id" type="shortstr"/>
+    </method>
+    <method name="ack" index="80">
+      <chassis name="server" implement="MUST"/>
+      <field name="delivery tag" domain="delivery tag"/>
+      <field name="multiple" type="bit"/>
+    </method>
+    <method name="reject" index="90">
+      <chassis name="server" implement="MUST"/>
+      <field name="delivery tag" domain="delivery tag"/>
+      <field name="requeue" type="bit"/>
+    </method>
+    <method name="recover" index="100">
+      <chassis name="server" implement="MUST"/>
+      <field name="requeue" type="bit"/>
+    </method>
+  </class>
+  <class name="file" handler="channel" index="70">
+    <chassis name="server" implement="MAY"/>
+    <chassis name="client" implement="MAY"/>
+    <field name="content type" type="shortstr"/>
+    <field name="content encoding" type="shortstr"/>
+    <field name="headers" type="table"/>
+    <field name="priority" type="octet"/>
+    <field name="reply to" type="shortstr"/>
+    <field name="message id" type="shortstr"/>
+    <field name="filename" type="shortstr"/>
+    <field name="timestamp" type="timestamp"/>
+    <field name="cluster id" type="shortstr"/>
+    <method name="qos" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="qos-ok"/>
+      <field name="prefetch size" type="long"/>
+      <field name="prefetch count" type="short"/>
+      <field name="global" type="bit"/>
+    </method>
+    <method name="qos-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="consume" synchronous="1" index="20">
+      <chassis name="server" implement="MUST"/>
+      <response name="consume-ok"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="queue" domain="queue name"/>
+      <field name="consumer tag" domain="consumer tag"/>
+      <field name="no local" domain="no local"/>
+      <field name="no ack" domain="no ack"/>
+      <field name="exclusive" type="bit"/>
+      <field name="nowait" type="bit"/>
+    </method>
+    <method name="consume-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer tag" domain="consumer tag"/>
+    </method>
+    <method name="cancel" synchronous="1" index="30">
+      <chassis name="server" implement="MUST"/>
+      <response name="cancel-ok"/>
+      <field name="consumer tag" domain="consumer tag"/>
+      <field name="nowait" type="bit"/>
+    </method>
+    <method name="cancel-ok" synchronous="1" index="31">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer tag" domain="consumer tag"/>
+    </method>
+    <method name="open" synchronous="1" index="40">
+      <response name="open-ok"/>
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+      <field name="identifier" type="shortstr"/>
+      <field name="content size" type="longlong"/>
+    </method>
+    <method name="open-ok" synchronous="1" index="41">
+      <response name="stage"/>
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+      <field name="staged size" type="longlong"/>
+    </method>
+    <method name="stage" content="1" index="50">
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="publish" index="60">
+      <chassis name="server" implement="MUST"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" type="shortstr"/>
+      <field name="mandatory" type="bit"/>
+      <field name="immediate" type="bit"/>
+      <field name="identifier" type="shortstr"/>
+    </method>
+    <method name="return" content="1" index="70">
+      <chassis name="client" implement="MUST"/>
+      <field name="reply code" domain="reply code"/>
+      <field name="reply text" domain="reply text"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" type="shortstr"/>
+    </method>
+    <method name="deliver" index="80">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer tag" domain="consumer tag"/>
+      <field name="delivery tag" domain="delivery tag"/>
+      <field name="redelivered" domain="redelivered"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" type="shortstr"/>
+      <field name="identifier" type="shortstr"/>
+    </method>
+    <method name="ack" index="90">
+      <chassis name="server" implement="MUST"/>
+      <field name="delivery tag" domain="delivery tag"/>
+      <field name="multiple" type="bit"/>
+    </method>
+    <method name="reject" index="100">
+      <chassis name="server" implement="MUST"/>
+      <field name="delivery tag" domain="delivery tag"/>
+      <field name="requeue" type="bit"/>
+    </method>
+  </class>
+  <class name="stream" handler="channel" index="80">
+    <chassis name="server" implement="MAY"/>
+    <chassis name="client" implement="MAY"/>
+    <field name="content type" type="shortstr"/>
+    <field name="content encoding" type="shortstr"/>
+    <field name="headers" type="table"/>
+    <field name="priority" type="octet"/>
+    <field name="timestamp" type="timestamp"/>
+    <method name="qos" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="qos-ok"/>
+      <field name="prefetch size" type="long"/>
+      <field name="prefetch count" type="short"/>
+      <field name="consume rate" type="long"/>
+      <field name="global" type="bit"/>
+    </method>
+    <method name="qos-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="consume" synchronous="1" index="20">
+      <chassis name="server" implement="MUST"/>
+      <response name="consume-ok"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="queue" domain="queue name"/>
+      <field name="consumer tag" domain="consumer tag"/>
+      <field name="no local" domain="no local"/>
+      <field name="exclusive" type="bit"/>
+      <field name="nowait" type="bit"/>
+    </method>
+    <method name="consume-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer tag" domain="consumer tag"/>
+    </method>
+    <method name="cancel" synchronous="1" index="30">
+      <chassis name="server" implement="MUST"/>
+      <response name="cancel-ok"/>
+      <field name="consumer tag" domain="consumer tag"/>
+      <field name="nowait" type="bit"/>
+    </method>
+    <method name="cancel-ok" synchronous="1" index="31">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer tag" domain="consumer tag"/>
+    </method>
+    <method name="publish" content="1" index="40">
+      <chassis name="server" implement="MUST"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" type="shortstr"/>
+      <field name="mandatory" type="bit"/>
+      <field name="immediate" type="bit"/>
+    </method>
+    <method name="return" content="1" index="50">
+      <chassis name="client" implement="MUST"/>
+      <field name="reply code" domain="reply code"/>
+      <field name="reply text" domain="reply text"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" type="shortstr"/>
+    </method>
+    <method name="deliver" content="1" index="60">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer tag" domain="consumer tag"/>
+      <field name="delivery tag" domain="delivery tag"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="queue" domain="queue name">
+        <assert check="notnull"/>
+      </field>
+    </method>
+  </class>
+  <class name="tx" handler="channel" index="90">
+    <chassis name="server" implement="SHOULD"/>
+    <chassis name="client" implement="MAY"/>
+    <method name="select" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="select-ok"/>
+    </method>
+    <method name="select-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="commit" synchronous="1" index="20">
+      <chassis name="server" implement="MUST"/>
+      <response name="commit-ok"/>
+    </method>
+    <method name="commit-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="rollback" synchronous="1" index="30">
+      <chassis name="server" implement="MUST"/>
+      <response name="rollback-ok"/>
+    </method>
+    <method name="rollback-ok" synchronous="1" index="31">
+      <chassis name="client" implement="MUST"/>
+    </method>
+  </class>
+  <class name="dtx" handler="channel" index="100">
+    <chassis name="server" implement="MAY"/>
+    <chassis name="client" implement="MAY"/>
+    <method name="select" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="select-ok"/>
+    </method>
+    <method name="select-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="start" synchronous="1" index="20">
+      <chassis name="server" implement="MAY"/>
+      <response name="start-ok"/>
+      <field name="dtx identifier" type="shortstr">
+        <assert check="notnull"/>
+      </field>
+    </method>
+    <method name="start-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+    </method>
+  </class>
+  <class name="tunnel" handler="tunnel" index="110">
+    <chassis name="server" implement="MAY"/>
+    <chassis name="client" implement="MAY"/>
+    <field name="headers" type="table"/>
+    <field name="proxy name" type="shortstr"/>
+    <field name="data name" type="shortstr"/>
+    <field name="durable" type="octet"/>
+    <field name="broadcast" type="octet"/>
+    <method name="request" content="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <field name="meta data" type="table"/>
+    </method>
+  </class>
+  <class name="test" handler="channel" index="120">
+    <chassis name="server" implement="MUST"/>
+    <chassis name="client" implement="SHOULD"/>
+    <method name="integer" synchronous="1" index="10">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <response name="integer-ok"/>
+      <field name="integer 1" type="octet"/>
+      <field name="integer 2" type="short"/>
+      <field name="integer 3" type="long"/>
+      <field name="integer 4" type="longlong"/>
+      <field name="operation" type="octet">
+        <assert check="enum">
+          <value name="add"/>
+          <value name="min"/>
+          <value name="max"/>
+        </assert>
+      </field>
+    </method>
+    <method name="integer-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <field name="result" type="longlong"/>
+    </method>
+    <method name="string" synchronous="1" index="20">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <response name="string-ok"/>
+      <field name="string 1" type="shortstr"/>
+      <field name="string 2" type="longstr"/>
+      <field name="operation" type="octet">
+        <assert check="enum">
+          <value name="add"/>
+          <value name="min"/>
+          <value name="max"/>
+        </assert>
+      </field>
+    </method>
+    <method name="string-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <field name="result" type="longstr"/>
+    </method>
+    <method name="table" synchronous="1" index="30">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <response name="table-ok"/>
+      <field name="table" type="table"/>
+      <field name="integer op" type="octet">
+        <assert check="enum">
+          <value name="add"/>
+          <value name="min"/>
+          <value name="max"/>
+        </assert>
+      </field>
+      <field name="string op" type="octet">
+        <assert check="enum">
+          <value name="add"/>
+          <value name="min"/>
+          <value name="max"/>
+        </assert>
+      </field>
+    </method>
+    <method name="table-ok" synchronous="1" index="31">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <field name="integer result" type="longlong"/>
+      <field name="string result" type="longstr"/>
+    </method>
+    <method name="content" synchronous="1" content="1" index="40">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <response name="content-ok"/>
+    </method>
+    <method name="content-ok" synchronous="1" content="1" index="41">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <field name="content checksum" type="long"/>
+    </method>
+  </class>
+</amqp>
diff --git a/mcs/class/RabbitMQ.Client/docs/specs/amqp0-9.stripped.xml b/mcs/class/RabbitMQ.Client/docs/specs/amqp0-9.stripped.xml
new file mode 100644
index 0000000..5233332
--- /dev/null
+++ b/mcs/class/RabbitMQ.Client/docs/specs/amqp0-9.stripped.xml
@@ -0,0 +1,844 @@
+<?xml version="1.0"?>
+<!--
+Copyright (c) 2009 AMQP Working Group.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+3. The name of the author may not be used to endorse or promote products
+derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<amqp major="0" minor="9" port="5672">
+  <constant name="frame-method" value="1"/>
+  <constant name="frame-header" value="2"/>
+  <constant name="frame-body" value="3"/>
+  <constant name="frame-oob-method" value="4"/>
+  <constant name="frame-oob-header" value="5"/>
+  <constant name="frame-oob-body" value="6"/>
+  <constant name="frame-trace" value="7"/>
+  <constant name="frame-heartbeat" value="8"/>
+  <constant name="frame-min-size" value="4096"/>
+  <constant name="frame-end" value="206"/>
+  <constant name="reply-success" value="200"/>
+  <constant name="not-delivered" value="310" class="soft-error"/>
+  <constant name="content-too-large" value="311" class="soft-error"/>
+  <constant name="no-route" value="312" class="soft-error"/>
+  <constant name="no-consumers" value="313" class="soft-error"/>
+  <constant name="connection-forced" value="320" class="hard-error"/>
+  <constant name="invalid-path" value="402" class="hard-error"/>
+  <constant name="access-refused" value="403" class="soft-error"/>
+  <constant name="not-found" value="404" class="soft-error"/>
+  <constant name="resource-locked" value="405" class="soft-error"/>
+  <constant name="precondition-failed" value="406" class="soft-error"/>
+  <constant name="frame-error" value="501" class="hard-error"/>
+  <constant name="syntax-error" value="502" class="hard-error"/>
+  <constant name="command-invalid" value="503" class="hard-error"/>
+  <constant name="channel-error" value="504" class="hard-error"/>
+  <constant name="resource-error" value="506" class="hard-error"/>
+  <constant name="not-allowed" value="530" class="hard-error"/>
+  <constant name="not-implemented" value="540" class="hard-error"/>
+  <constant name="internal-error" value="541" class="hard-error"/>
+  <domain name="access-ticket" type="short">
+    <assert check="ne" value="0"/>
+  </domain>
+  <domain name="class-id" type="short"/>
+  <domain name="consumer-tag" type="shortstr"/>
+  <domain name="delivery-tag" type="longlong"/>
+  <domain name="exchange-name" type="shortstr">
+    <assert check="length" value="127"/>
+  </domain>
+  <domain name="known-hosts" type="shortstr"/>
+  <domain name="method-id" type="short"/>
+  <domain name="no-ack" type="bit"/>
+  <domain name="no-local" type="bit"/>
+  <domain name="path" type="shortstr">
+    <assert check="notnull"/>
+    <assert check="syntax" rule="path"/>
+    <assert check="length" value="127"/>
+  </domain>
+  <domain name="peer-properties" type="table"/>
+  <domain name="queue-name" type="shortstr">
+    <assert check="length" value="127"/>
+  </domain>
+  <domain name="redelivered" type="bit"/>
+  <domain name="reply-code" type="short">
+    <assert check="notnull"/>
+  </domain>
+  <domain name="reply-text" type="shortstr">
+    <assert check="notnull"/>
+  </domain>
+  <domain name="channel-id" type="longstr"/>
+  <domain name="duration" type="longlong"/>
+  <domain name="offset" type="longlong"/>
+  <domain name="reference" type="longstr"/>
+  <domain name="destination" type="shortstr"/>
+  <domain name="reject-code" type="short"/>
+  <domain name="reject-text" type="shortstr"/>
+  <domain name="security-token" type="longstr"/>
+  <domain name="bit" type="bit"/>
+  <domain name="octet" type="octet"/>
+  <domain name="short" type="short"/>
+  <domain name="long" type="long"/>
+  <domain name="longlong" type="longlong"/>
+  <domain name="shortstr" type="shortstr"/>
+  <domain name="longstr" type="longstr"/>
+  <domain name="timestamp" type="timestamp"/>
+  <domain name="table" type="table"/>
+  <class name="connection" handler="connection" index="10">
+    <chassis name="server" implement="MUST"/>
+    <chassis name="client" implement="MUST"/>
+    <method name="start" synchronous="1" index="10">
+      <chassis name="client" implement="MUST"/>
+      <response name="start-ok"/>
+      <field name="version-major" domain="octet"/>
+      <field name="version-minor" domain="octet"/>
+      <field name="server-properties" domain="peer-properties"/>
+      <field name="mechanisms" domain="longstr">
+        <assert check="notnull"/>
+      </field>
+      <field name="locales" domain="longstr">
+        <assert check="notnull"/>
+      </field>
+    </method>
+    <method name="start-ok" synchronous="1" index="11">
+      <chassis name="server" implement="MUST"/>
+      <field name="client-properties" domain="peer-properties"/>
+      <field name="mechanism" domain="shortstr">
+        <assert check="notnull"/>
+      </field>
+      <field name="response" domain="longstr">
+        <assert check="notnull"/>
+      </field>
+      <field name="locale" domain="shortstr">
+        <assert check="notnull"/>
+      </field>
+    </method>
+    <method name="secure" synchronous="1" index="20">
+      <chassis name="client" implement="MUST"/>
+      <response name="secure-ok"/>
+      <field name="challenge" domain="longstr"/>
+    </method>
+    <method name="secure-ok" synchronous="1" index="21">
+      <chassis name="server" implement="MUST"/>
+      <field name="response" domain="longstr">
+        <assert check="notnull"/>
+      </field>
+    </method>
+    <method name="tune" synchronous="1" index="30">
+      <chassis name="client" implement="MUST"/>
+      <response name="tune-ok"/>
+      <field name="channel-max" domain="short"/>
+      <field name="frame-max" domain="long"/>
+      <field name="heartbeat" domain="short"/>
+    </method>
+    <method name="tune-ok" synchronous="1" index="31">
+      <chassis name="server" implement="MUST"/>
+      <field name="channel-max" domain="short">
+        <assert check="notnull"/>
+        <assert check="le" method="tune" field="channel-max"/>
+      </field>
+      <field name="frame-max" domain="long"/>
+      <field name="heartbeat" domain="short"/>
+    </method>
+    <method name="open" synchronous="1" index="40">
+      <chassis name="server" implement="MUST"/>
+      <response name="open-ok"/>
+      <response name="redirect"/>
+      <field name="virtual-host" domain="path">
+        <assert check="regexp" value="^[a-zA-Z0-9/-_]+$"/>
+      </field>
+      <field name="capabilities" domain="shortstr"/>
+      <field name="insist" domain="bit"/>
+    </method>
+    <method name="open-ok" synchronous="1" index="41">
+      <chassis name="client" implement="MUST"/>
+      <field name="known-hosts" domain="known-hosts"/>
+    </method>
+    <method name="redirect" synchronous="1" index="42">
+      <chassis name="client" implement="MUST"/>
+      <field name="host" domain="shortstr">
+        <assert check="notnull"/>
+      </field>
+      <field name="known-hosts" domain="known-hosts"/>
+    </method>
+    <method name="close" synchronous="1" index="50">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <response name="close-ok"/>
+      <field name="reply-code" domain="reply-code"/>
+      <field name="reply-text" domain="reply-text"/>
+      <field name="class-id" domain="class-id"/>
+      <field name="method-id" domain="method-id"/>
+    </method>
+    <method name="close-ok" synchronous="1" index="51">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+    </method>
+  </class>
+  <class name="channel" handler="channel" index="20">
+    <chassis name="server" implement="MUST"/>
+    <chassis name="client" implement="MUST"/>
+    <method name="open" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="open-ok"/>
+      <field name="out-of-band" domain="shortstr">
+        <assert check="null"/>
+      </field>
+    </method>
+    <method name="open-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+      <field name="channel-id" domain="channel-id"/>
+    </method>
+    <method name="flow" synchronous="1" index="20">
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+      <response name="flow-ok"/>
+      <field name="active" domain="bit"/>
+    </method>
+    <method name="flow-ok" index="21">
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+      <field name="active" domain="bit"/>
+    </method>
+    <method name="close" synchronous="1" index="40">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <response name="close-ok"/>
+      <field name="reply-code" domain="reply-code"/>
+      <field name="reply-text" domain="reply-text"/>
+      <field name="class-id" domain="class-id"/>
+      <field name="method-id" domain="method-id"/>
+    </method>
+    <method name="close-ok" synchronous="1" index="41">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+    </method>
+    <method name="resume" index="50">
+      <response name="ok"/>
+      <chassis name="server" implement="MAY"/>
+      <field name="channel-id" domain="channel-id"/>
+    </method>
+    <method name="ping" index="60">
+      <response name="ok"/>
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="pong" index="70">
+      <response name="ok"/>
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="ok" index="80">
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+    </method>
+  </class>
+  <class name="access" handler="connection" index="30">
+    <chassis name="server" implement="MUST"/>
+    <chassis name="client" implement="MUST"/>
+    <method name="request" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="request-ok"/>
+      <field name="realm" domain="shortstr"/>
+      <field name="exclusive" domain="bit"/>
+      <field name="passive" domain="bit"/>
+      <field name="active" domain="bit"/>
+      <field name="write" domain="bit"/>
+      <field name="read" domain="bit"/>
+    </method>
+    <method name="request-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+      <field name="ticket" domain="access-ticket"/>
+    </method>
+  </class>
+  <class name="exchange" handler="channel" index="40">
+    <chassis name="server" implement="MUST"/>
+    <chassis name="client" implement="MUST"/>
+    <method name="declare" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="declare-ok"/>
+      <field name="ticket" domain="access-ticket"/>
+      <field name="exchange" domain="exchange-name">
+        <assert check="regexp" value="^[a-zA-Z0-9-_.:]+$"/>
+      </field>
+      <field name="type" domain="shortstr">
+        <assert check="regexp" value="^[a-zA-Z0-9-_.:]+$"/>
+      </field>
+      <field name="passive" domain="bit"/>
+      <field name="durable" domain="bit"/>
+      <field name="auto-delete" domain="bit"/>
+      <field name="internal" domain="bit"/>
+      <field name="nowait" domain="bit"/>
+      <field name="arguments" domain="table"/>
+    </method>
+    <method name="declare-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="delete" synchronous="1" index="20">
+      <chassis name="server" implement="MUST"/>
+      <response name="delete-ok"/>
+      <field name="ticket" domain="access-ticket"/>
+      <field name="exchange" domain="exchange-name">
+        <assert check="notnull"/>
+      </field>
+      <field name="if-unused" domain="bit"/>
+      <field name="nowait" domain="bit"/>
+    </method>
+    <method name="delete-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+    </method>
+  </class>
+  <class name="queue" handler="channel" index="50">
+    <chassis name="server" implement="MUST"/>
+    <chassis name="client" implement="MUST"/>
+    <method name="declare" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="declare-ok"/>
+      <field name="ticket" domain="access-ticket"/>
+      <field name="queue" domain="queue-name">
+        <assert check="regexp" value="^[a-zA-Z0-9-_.:]*$"/>
+      </field>
+      <field name="passive" domain="bit"/>
+      <field name="durable" domain="bit"/>
+      <field name="exclusive" domain="bit"/>
+      <field name="auto-delete" domain="bit"/>
+      <field name="nowait" domain="bit"/>
+      <field name="arguments" domain="table"/>
+    </method>
+    <method name="declare-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+      <field name="queue" domain="queue-name">
+        <assert check="notnull"/>
+      </field>
+      <field name="message-count" domain="long"/>
+      <field name="consumer-count" domain="long"/>
+    </method>
+    <method name="bind" synchronous="1" index="20">
+      <chassis name="server" implement="MUST"/>
+      <response name="bind-ok"/>
+      <field name="ticket" domain="access-ticket"/>
+      <field name="queue" domain="queue-name"/>
+      <field name="exchange" domain="exchange-name"/>
+      <field name="routing-key" domain="shortstr"/>
+      <field name="nowait" domain="bit"/>
+      <field name="arguments" domain="table"/>
+    </method>
+    <method name="bind-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="unbind" synchronous="1" index="50">
+      <chassis name="server" implement="MUST"/>
+      <response name="unbind-ok"/>
+      <field name="ticket" domain="access-ticket"/>
+      <field name="queue" domain="queue-name"/>
+      <field name="exchange" domain="exchange-name"/>
+      <field name="routing-key" domain="shortstr"/>
+      <field name="arguments" domain="table"/>
+    </method>
+    <method name="unbind-ok" synchronous="1" index="51">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="purge" synchronous="1" index="30">
+      <chassis name="server" implement="MUST"/>
+      <response name="purge-ok"/>
+      <field name="ticket" domain="access-ticket"/>
+      <field name="queue" domain="queue-name"/>
+      <field name="nowait" domain="bit"/>
+    </method>
+    <method name="purge-ok" synchronous="1" index="31">
+      <chassis name="client" implement="MUST"/>
+      <field name="message-count" domain="long"/>
+    </method>
+    <method name="delete" synchronous="1" index="40">
+      <chassis name="server" implement="MUST"/>
+      <response name="delete-ok"/>
+      <field name="ticket" domain="access-ticket"/>
+      <field name="queue" domain="queue-name"/>
+      <field name="if-unused" domain="bit"/>
+      <field name="if-empty" domain="bit"/>
+      <field name="nowait" domain="bit"/>
+    </method>
+    <method name="delete-ok" synchronous="1" index="41">
+      <chassis name="client" implement="MUST"/>
+      <field name="message-count" domain="long"/>
+    </method>
+  </class>
+  <class name="basic" handler="channel" index="60">
+    <chassis name="server" implement="MUST"/>
+    <chassis name="client" implement="MAY"/>
+    <field name="content-type" domain="shortstr"/>
+    <field name="content-encoding" domain="shortstr"/>
+    <field name="headers" domain="table"/>
+    <field name="delivery-mode" domain="octet"/>
+    <field name="priority" domain="octet"/>
+    <field name="correlation-id" domain="shortstr"/>
+    <field name="reply-to" domain="shortstr"/>
+    <field name="expiration" domain="shortstr"/>
+    <field name="message-id" domain="shortstr"/>
+    <field name="timestamp" domain="timestamp"/>
+    <field name="type" domain="shortstr"/>
+    <field name="user-id" domain="shortstr"/>
+    <field name="app-id" domain="shortstr"/>
+    <field name="cluster-id" domain="shortstr"/>
+    <method name="qos" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="qos-ok"/>
+      <field name="prefetch-size" domain="long"/>
+      <field name="prefetch-count" domain="short"/>
+      <field name="global" domain="bit"/>
+    </method>
+    <method name="qos-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="consume" synchronous="1" index="20">
+      <chassis name="server" implement="MUST"/>
+      <response name="consume-ok"/>
+      <field name="ticket" domain="access-ticket"/>
+      <field name="queue" domain="queue-name"/>
+      <field name="consumer-tag" domain="consumer-tag"/>
+      <field name="no-local" domain="no-local"/>
+      <field name="no-ack" domain="no-ack"/>
+      <field name="exclusive" domain="bit"/>
+      <field name="nowait" domain="bit"/>
+      <field name="filter" domain="table"/>
+    </method>
+    <method name="consume-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer-tag" domain="consumer-tag"/>
+    </method>
+    <method name="cancel" synchronous="1" index="30">
+      <chassis name="server" implement="MUST"/>
+      <response name="cancel-ok"/>
+      <field name="consumer-tag" domain="consumer-tag"/>
+      <field name="nowait" domain="bit"/>
+    </method>
+    <method name="cancel-ok" synchronous="1" index="31">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer-tag" domain="consumer-tag"/>
+    </method>
+    <method name="publish" content="1" index="40">
+      <chassis name="server" implement="MUST"/>
+      <field name="ticket" domain="access-ticket"/>
+      <field name="exchange" domain="exchange-name"/>
+      <field name="routing-key" domain="shortstr"/>
+      <field name="mandatory" domain="bit"/>
+      <field name="immediate" domain="bit"/>
+    </method>
+    <method name="return" content="1" index="50">
+      <chassis name="client" implement="MUST"/>
+      <field name="reply-code" domain="reply-code"/>
+      <field name="reply-text" domain="reply-text"/>
+      <field name="exchange" domain="exchange-name"/>
+      <field name="routing-key" domain="shortstr"/>
+    </method>
+    <method name="deliver" content="1" index="60">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer-tag" domain="consumer-tag"/>
+      <field name="delivery-tag" domain="delivery-tag"/>
+      <field name="redelivered" domain="redelivered"/>
+      <field name="exchange" domain="exchange-name"/>
+      <field name="routing-key" domain="shortstr"/>
+    </method>
+    <method name="get" synchronous="1" index="70">
+      <response name="get-ok"/>
+      <response name="get-empty"/>
+      <chassis name="server" implement="MUST"/>
+      <field name="ticket" domain="access-ticket"/>
+      <field name="queue" domain="queue-name"/>
+      <field name="no-ack" domain="no-ack"/>
+    </method>
+    <method name="get-ok" synchronous="1" content="1" index="71">
+      <chassis name="client" implement="MAY"/>
+      <field name="delivery-tag" domain="delivery-tag"/>
+      <field name="redelivered" domain="redelivered"/>
+      <field name="exchange" domain="exchange-name"/>
+      <field name="routing-key" domain="shortstr"/>
+      <field name="message-count" domain="long"/>
+    </method>
+    <method name="get-empty" synchronous="1" index="72">
+      <chassis name="client" implement="MAY"/>
+      <field name="cluster-id" domain="shortstr"/>
+    </method>
+    <method name="ack" index="80">
+      <chassis name="server" implement="MUST"/>
+      <field name="delivery-tag" domain="delivery-tag"/>
+      <field name="multiple" domain="bit"/>
+    </method>
+    <method name="reject" index="90">
+      <chassis name="server" implement="MUST"/>
+      <field name="delivery-tag" domain="delivery-tag"/>
+      <field name="requeue" domain="bit"/>
+    </method>
+    <method name="recover" index="100">
+      <chassis name="server" implement="MUST"/>
+      <field name="requeue" domain="bit"/>
+    </method>
+  </class>
+  <class name="file" handler="channel" index="70">
+    <chassis name="server" implement="MAY"/>
+    <chassis name="client" implement="MAY"/>
+    <field name="content-type" domain="shortstr"/>
+    <field name="content-encoding" domain="shortstr"/>
+    <field name="headers" domain="table"/>
+    <field name="priority" domain="octet"/>
+    <field name="reply-to" domain="shortstr"/>
+    <field name="message-id" domain="shortstr"/>
+    <field name="filename" domain="shortstr"/>
+    <field name="timestamp" domain="timestamp"/>
+    <field name="cluster-id" domain="shortstr"/>
+    <method name="qos" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="qos-ok"/>
+      <field name="prefetch-size" domain="long"/>
+      <field name="prefetch-count" domain="short"/>
+      <field name="global" domain="bit"/>
+    </method>
+    <method name="qos-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="consume" synchronous="1" index="20">
+      <chassis name="server" implement="MUST"/>
+      <response name="consume-ok"/>
+      <field name="ticket" domain="access-ticket"/>
+      <field name="queue" domain="queue-name"/>
+      <field name="consumer-tag" domain="consumer-tag"/>
+      <field name="no-local" domain="no-local"/>
+      <field name="no-ack" domain="no-ack"/>
+      <field name="exclusive" domain="bit"/>
+      <field name="nowait" domain="bit"/>
+      <field name="filter" domain="table"/>
+    </method>
+    <method name="consume-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer-tag" domain="consumer-tag"/>
+    </method>
+    <method name="cancel" synchronous="1" index="30">
+      <response name="cancel-ok"/>
+      <chassis name="server" implement="MUST"/>
+      <field name="consumer-tag" domain="consumer-tag"/>
+      <field name="nowait" domain="bit"/>
+    </method>
+    <method name="cancel-ok" synchronous="1" index="31">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer-tag" domain="consumer-tag"/>
+    </method>
+    <method name="open" synchronous="1" index="40">
+      <response name="open-ok"/>
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+      <field name="identifier" domain="shortstr"/>
+      <field name="content-size" domain="longlong"/>
+    </method>
+    <method name="open-ok" synchronous="1" index="41">
+      <response name="stage"/>
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+      <field name="staged-size" domain="longlong"/>
+    </method>
+    <method name="stage" content="1" index="50">
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="publish" index="60">
+      <chassis name="server" implement="MUST"/>
+      <field name="ticket" domain="access-ticket"/>
+      <field name="exchange" domain="exchange-name"/>
+      <field name="routing-key" domain="shortstr"/>
+      <field name="mandatory" domain="bit"/>
+      <field name="immediate" domain="bit"/>
+      <field name="identifier" domain="shortstr"/>
+    </method>
+    <method name="return" content="1" index="70">
+      <chassis name="client" implement="MUST"/>
+      <field name="reply-code" domain="reply-code"/>
+      <field name="reply-text" domain="reply-text"/>
+      <field name="exchange" domain="exchange-name"/>
+      <field name="routing-key" domain="shortstr"/>
+    </method>
+    <method name="deliver" index="80">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer-tag" domain="consumer-tag"/>
+      <field name="delivery-tag" domain="delivery-tag"/>
+      <field name="redelivered" domain="redelivered"/>
+      <field name="exchange" domain="exchange-name"/>
+      <field name="routing-key" domain="shortstr"/>
+      <field name="identifier" domain="shortstr"/>
+    </method>
+    <method name="ack" index="90">
+      <chassis name="server" implement="MUST"/>
+      <field name="delivery-tag" domain="delivery-tag"/>
+      <field name="multiple" domain="bit"/>
+    </method>
+    <method name="reject" index="100">
+      <chassis name="server" implement="MUST"/>
+      <field name="delivery-tag" domain="delivery-tag"/>
+      <field name="requeue" domain="bit"/>
+    </method>
+  </class>
+  <class name="stream" handler="channel" index="80">
+    <chassis name="server" implement="MAY"/>
+    <chassis name="client" implement="MAY"/>
+    <field name="content-type" domain="shortstr"/>
+    <field name="content-encoding" domain="shortstr"/>
+    <field name="headers" domain="table"/>
+    <field name="priority" domain="octet"/>
+    <field name="timestamp" domain="timestamp"/>
+    <method name="qos" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="qos-ok"/>
+      <field name="prefetch-size" domain="long"/>
+      <field name="prefetch-count" domain="short"/>
+      <field name="consume-rate" domain="long"/>
+      <field name="global" domain="bit"/>
+    </method>
+    <method name="qos-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="consume" synchronous="1" index="20">
+      <chassis name="server" implement="MUST"/>
+      <response name="consume-ok"/>
+      <field name="ticket" domain="access-ticket"/>
+      <field name="queue" domain="queue-name"/>
+      <field name="consumer-tag" domain="consumer-tag"/>
+      <field name="no-local" domain="no-local"/>
+      <field name="exclusive" domain="bit"/>
+      <field name="nowait" domain="bit"/>
+      <field name="filter" domain="table"/>
+    </method>
+    <method name="consume-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer-tag" domain="consumer-tag"/>
+    </method>
+    <method name="cancel" synchronous="1" index="30">
+      <chassis name="server" implement="MUST"/>
+      <response name="cancel-ok"/>
+      <field name="consumer-tag" domain="consumer-tag"/>
+      <field name="nowait" domain="bit"/>
+    </method>
+    <method name="cancel-ok" synchronous="1" index="31">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer-tag" domain="consumer-tag"/>
+    </method>
+    <method name="publish" content="1" index="40">
+      <chassis name="server" implement="MUST"/>
+      <field name="ticket" domain="access-ticket"/>
+      <field name="exchange" domain="exchange-name"/>
+      <field name="routing-key" domain="shortstr"/>
+      <field name="mandatory" domain="bit"/>
+      <field name="immediate" domain="bit"/>
+    </method>
+    <method name="return" content="1" index="50">
+      <chassis name="client" implement="MUST"/>
+      <field name="reply-code" domain="reply-code"/>
+      <field name="reply-text" domain="reply-text"/>
+      <field name="exchange" domain="exchange-name"/>
+      <field name="routing-key" domain="shortstr"/>
+    </method>
+    <method name="deliver" content="1" index="60">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer-tag" domain="consumer-tag"/>
+      <field name="delivery-tag" domain="delivery-tag"/>
+      <field name="exchange" domain="exchange-name"/>
+      <field name="queue" domain="queue-name">
+        <assert check="notnull"/>
+      </field>
+    </method>
+  </class>
+  <class name="tx" handler="channel" index="90">
+    <chassis name="server" implement="SHOULD"/>
+    <chassis name="client" implement="MAY"/>
+    <method name="select" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="select-ok"/>
+    </method>
+    <method name="select-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="commit" synchronous="1" index="20">
+      <chassis name="server" implement="MUST"/>
+      <response name="commit-ok"/>
+    </method>
+    <method name="commit-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="rollback" synchronous="1" index="30">
+      <chassis name="server" implement="MUST"/>
+      <response name="rollback-ok"/>
+    </method>
+    <method name="rollback-ok" synchronous="1" index="31">
+      <chassis name="client" implement="MUST"/>
+    </method>
+  </class>
+  <class name="dtx" handler="channel" index="100">
+    <chassis name="server" implement="MAY"/>
+    <chassis name="client" implement="MAY"/>
+    <method name="select" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="select-ok"/>
+    </method>
+    <method name="select-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="start" synchronous="1" index="20">
+      <chassis name="server" implement="MAY"/>
+      <response name="start-ok"/>
+      <field name="dtx-identifier" domain="shortstr">
+        <assert check="notnull"/>
+      </field>
+    </method>
+    <method name="start-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+    </method>
+  </class>
+  <class name="tunnel" handler="tunnel" index="110">
+    <chassis name="server" implement="MAY"/>
+    <chassis name="client" implement="MAY"/>
+    <field name="headers" domain="table"/>
+    <field name="proxy-name" domain="shortstr"/>
+    <field name="data-name" domain="shortstr"/>
+    <field name="durable" domain="octet"/>
+    <field name="broadcast" domain="octet"/>
+    <method name="request" content="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <field name="meta-data" domain="table"/>
+    </method>
+  </class>
+  <class name="message" index="120" handler="channel">
+    <chassis name="server" implement="MUST"/>
+    <chassis name="client" implement="MUST"/>
+    <method name="transfer" index="10">
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+      <response name="ok"/>
+      <response name="reject"/>
+      <field name="ticket" domain="access-ticket"/>
+      <field name="destination" domain="destination"/>
+      <field name="redelivered" domain="redelivered"/>
+      <field name="immediate" domain="bit"/>
+      <field name="ttl" domain="duration"/>
+      <field name="priority" domain="octet"/>
+      <field name="timestamp" domain="timestamp"/>
+      <field name="delivery-mode" domain="octet"/>
+      <field name="expiration" domain="timestamp"/>
+      <field name="exchange" domain="exchange-name"/>
+      <field name="routing-key" domain="shortstr"/>
+      <field name="message-id" domain="shortstr"/>
+      <field name="correlation-id" domain="shortstr"/>
+      <field name="reply-to" domain="shortstr"/>
+      <field name="content-type" domain="shortstr"/>
+      <field name="content-encoding" domain="shortstr"/>
+      <field name="user-id" domain="shortstr"/>
+      <field name="app-id" domain="shortstr"/>
+      <field name="transaction-id" domain="shortstr"/>
+      <field name="security-token" domain="security-token"/>
+      <field name="application-headers" domain="table"/>
+      <field name="body" domain="content"/>
+    </method>
+    <method name="consume" index="20">
+      <chassis name="server" implement="MUST"/>
+      <response name="ok"/>
+      <field name="ticket" domain="access-ticket"/>
+      <field name="queue" domain="queue-name"/>
+      <field name="destination" domain="destination"/>
+      <field name="no-local" domain="no-local"/>
+      <field name="no-ack" domain="no-ack"/>
+      <field name="exclusive" domain="bit"/>
+      <field name="filter" domain="table"/>
+    </method>
+    <method name="cancel" index="30">
+      <chassis name="server" implement="MUST"/>
+      <response name="ok"/>
+      <field name="destination" domain="destination"/>
+    </method>
+    <method name="get" index="40">
+      <response name="ok"/>
+      <response name="empty"/>
+      <chassis name="server" implement="MUST"/>
+      <field name="ticket" domain="access-ticket"/>
+      <field name="queue" domain="queue-name"/>
+      <field name="destination" domain="destination"/>
+      <field name="no-ack" domain="no-ack"/>
+    </method>
+    <method name="recover" index="50">
+      <chassis name="server" implement="MUST"/>
+      <response name="ok"/>
+      <field name="requeue" domain="bit"/>
+    </method>
+    <method name="open" index="60">
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+      <response name="ok"/>
+      <field name="reference" domain="reference"/>
+    </method>
+    <method name="close" index="70">
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+      <response name="ok"/>
+      <field name="reference" domain="reference"/>
+    </method>
+    <method name="append" index="80">
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+      <response name="ok"/>
+      <field name="reference" domain="reference"/>
+      <field name="bytes" domain="longstr"/>
+    </method>
+    <method name="checkpoint" index="90">
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+      <response name="ok"/>
+      <field name="reference" domain="reference"/>
+      <field name="identifier" domain="shortstr"/>
+    </method>
+    <method name="resume" index="100">
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+      <response name="offset"/>
+      <field name="reference" domain="reference"/>
+      <field name="identifier" domain="shortstr"/>
+    </method>
+    <method name="qos" index="110">
+      <chassis name="server" implement="MUST"/>
+      <response name="ok"/>
+      <field name="prefetch-size" domain="long"/>
+      <field name="prefetch-count" domain="short"/>
+      <field name="global" domain="bit"/>
+    </method>
+    <method name="ok" index="500">
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="empty" index="510">
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="reject" index="520">
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+      <field name="code" domain="reject-code"/>
+      <field name="text" domain="reject-text"/>
+    </method>
+    <method name="offset" index="530">
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+      <field name="value" domain="offset"/>
+    </method>
+  </class>
+</amqp>
diff --git a/mcs/class/RabbitMQ.Client/docs/specs/qpid-amqp.0-8.stripped.xml b/mcs/class/RabbitMQ.Client/docs/specs/qpid-amqp.0-8.stripped.xml
new file mode 100644
index 0000000..e187889
--- /dev/null
+++ b/mcs/class/RabbitMQ.Client/docs/specs/qpid-amqp.0-8.stripped.xml
@@ -0,0 +1,773 @@
+<?xml version="1.0"?>
+<!--
+Copyright (c) 2009 AMQP Working Group.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer in the
+documentation and/or other materials provided with the distribution.
+3. The name of the author may not be used to endorse or promote products
+derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+-->
+<amqp major="8" minor="0" port="5672">
+  <constant name="frame method" value="1"/>
+  <constant name="frame header" value="2"/>
+  <constant name="frame body" value="3"/>
+  <constant name="frame oob method" value="4"/>
+  <constant name="frame oob header" value="5"/>
+  <constant name="frame oob body" value="6"/>
+  <constant name="frame trace" value="7"/>
+  <constant name="frame heartbeat" value="8"/>
+  <constant name="frame min size" value="4096"/>
+  <constant name="frame end" value="206"/>
+  <constant name="reply success" value="200"/>
+  <constant name="not delivered" value="310" class="soft error"/>
+  <constant name="content too large" value="311" class="soft error"/>
+  <constant name="connection forced" value="320" class="hard error"/>
+  <constant name="invalid path" value="402" class="hard error"/>
+  <constant name="access refused" value="403" class="soft error"/>
+  <constant name="not found" value="404" class="soft error"/>
+  <constant name="resource locked" value="405" class="soft error"/>
+  <constant name="frame error" value="501" class="hard error"/>
+  <constant name="syntax error" value="502" class="hard error"/>
+  <constant name="command invalid" value="503" class="hard error"/>
+  <constant name="channel error" value="504" class="hard error"/>
+  <constant name="resource error" value="506" class="hard error"/>
+  <constant name="not allowed" value="530" class="hard error"/>
+  <constant name="not implemented" value="540" class="hard error"/>
+  <constant name="internal error" value="541" class="hard error"/>
+  <domain name="access ticket" type="short">
+    <assert check="ne" value="0"/>
+  </domain>
+  <domain name="class id" type="short"/>
+  <domain name="consumer tag" type="shortstr"/>
+  <domain name="delivery tag" type="longlong"/>
+  <domain name="exchange name" type="shortstr">
+    <assert check="length" value="127"/>
+  </domain>
+  <domain name="known hosts" type="shortstr"/>
+  <domain name="method id" type="short"/>
+  <domain name="no ack" type="bit"/>
+  <domain name="no local" type="bit"/>
+  <domain name="path" type="shortstr">
+    <assert check="notnull"/>
+    <assert check="syntax" rule="path"/>
+    <assert check="length" value="127"/>
+  </domain>
+  <domain name="peer properties" type="table"/>
+  <domain name="queue name" type="shortstr">
+    <assert check="length" value="127"/>
+  </domain>
+  <domain name="redelivered" type="bit"/>
+  <domain name="reply code" type="short">
+    <assert check="notnull"/>
+  </domain>
+  <domain name="reply text" type="shortstr">
+    <assert check="notnull"/>
+  </domain>
+  <class name="connection" handler="connection" index="10">
+    <chassis name="server" implement="MUST"/>
+    <chassis name="client" implement="MUST"/>
+    <method name="start" synchronous="1" index="10">
+      <chassis name="client" implement="MUST"/>
+      <response name="start-ok"/>
+      <field name="version major" type="octet"/>
+      <field name="version minor" type="octet"/>
+      <field name="server properties" domain="peer properties"/>
+      <field name="mechanisms" type="longstr">
+        <see name="security mechanisms"/>
+        <assert check="notnull"/>
+      </field>
+      <field name="locales" type="longstr">
+        <assert check="notnull"/>
+      </field>
+    </method>
+    <method name="start-ok" synchronous="1" index="11">
+      <chassis name="server" implement="MUST"/>
+      <field name="client properties" domain="peer properties"/>
+      <field name="mechanism" type="shortstr">
+        <assert check="notnull"/>
+      </field>
+      <field name="response" type="longstr">
+        <assert check="notnull"/>
+      </field>
+      <field name="locale" type="shortstr">
+        <assert check="notnull"/>
+      </field>
+    </method>
+    <method name="secure" synchronous="1" index="20">
+      <chassis name="client" implement="MUST"/>
+      <response name="secure-ok"/>
+      <field name="challenge" type="longstr">
+        <see name="security mechanisms"/>
+      </field>
+    </method>
+    <method name="secure-ok" synchronous="1" index="21">
+      <chassis name="server" implement="MUST"/>
+      <field name="response" type="longstr">
+        <assert check="notnull"/>
+      </field>
+    </method>
+    <method name="tune" synchronous="1" index="30">
+      <chassis name="client" implement="MUST"/>
+      <response name="tune-ok"/>
+      <field name="channel max" type="short"/>
+      <field name="frame max" type="long"/>
+      <field name="heartbeat" type="short"/>
+    </method>
+    <method name="tune-ok" synchronous="1" index="31">
+      <chassis name="server" implement="MUST"/>
+      <field name="channel max" type="short">
+        <assert check="notnull"/>
+        <assert check="le" method="tune" field="channel max"/>
+      </field>
+      <field name="frame max" type="long"/>
+      <field name="heartbeat" type="short"/>
+    </method>
+    <method name="open" synchronous="1" index="40">
+      <chassis name="server" implement="MUST"/>
+      <response name="open-ok"/>
+      <response name="redirect"/>
+      <field name="virtual host" domain="path">
+        <assert check="regexp" value="^[a-zA-Z0-9/-_]+$"/>
+      </field>
+      <field name="capabilities" type="shortstr"/>
+      <field name="insist" type="bit"/>
+    </method>
+    <method name="open-ok" synchronous="1" index="41">
+      <chassis name="client" implement="MUST"/>
+      <field name="known hosts" domain="known hosts"/>
+    </method>
+    <method name="redirect" synchronous="1" index="50">
+      <chassis name="client" implement="MAY"/>
+      <field name="host" type="shortstr">
+        <assert check="notnull"/>
+      </field>
+      <field name="known hosts" domain="known hosts"/>
+    </method>
+    <method name="close" synchronous="1" index="60">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <response name="close-ok"/>
+      <field name="reply code" domain="reply code"/>
+      <field name="reply text" domain="reply text"/>
+      <field name="class id" domain="class id"/>
+      <field name="method id" domain="class id"/>
+    </method>
+    <method name="close-ok" synchronous="1" index="61">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+    </method>
+  </class>
+  <class name="channel" handler="channel" index="20">
+    <chassis name="server" implement="MUST"/>
+    <chassis name="client" implement="MUST"/>
+    <method name="open" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="open-ok"/>
+      <field name="out of band" type="shortstr">
+        <assert check="null"/>
+      </field>
+    </method>
+    <method name="open-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="flow" synchronous="1" index="20">
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+      <response name="flow-ok"/>
+      <field name="active" type="bit"/>
+    </method>
+    <method name="flow-ok" index="21">
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+      <field name="active" type="bit"/>
+    </method>
+    <method name="alert" index="30">
+      <chassis name="client" implement="MUST"/>
+      <field name="reply code" domain="reply code"/>
+      <field name="reply text" domain="reply text"/>
+      <field name="details" type="table"/>
+    </method>
+    <method name="close" synchronous="1" index="40">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <response name="close-ok"/>
+      <field name="reply code" domain="reply code"/>
+      <field name="reply text" domain="reply text"/>
+      <field name="class id" domain="class id"/>
+      <field name="method id" domain="method id"/>
+    </method>
+    <method name="close-ok" synchronous="1" index="41">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+    </method>
+  </class>
+  <class name="access" handler="connection" index="30">
+    <chassis name="server" implement="MUST"/>
+    <chassis name="client" implement="MUST"/>
+    <method name="request" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="request-ok"/>
+      <field name="realm" domain="path"/>
+      <field name="exclusive" type="bit"/>
+      <field name="passive" type="bit"/>
+      <field name="active" type="bit"/>
+      <field name="write" type="bit"/>
+      <field name="read" type="bit"/>
+    </method>
+    <method name="request-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+      <field name="ticket" domain="access ticket"/>
+    </method>
+  </class>
+  <class name="exchange" handler="channel" index="40">
+    <chassis name="server" implement="MUST"/>
+    <chassis name="client" implement="MUST"/>
+    <method name="declare" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="declare-ok"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="exchange" domain="exchange name">
+        <assert check="regexp" value="^[a-zA-Z0-9-_.:]+$"/>
+      </field>
+      <field name="type" type="shortstr">
+        <assert check="regexp" value="^[a-zA-Z0-9-_.:]+$"/>
+      </field>
+      <field name="passive" type="bit"/>
+      <field name="durable" type="bit"/>
+      <field name="auto delete" type="bit"/>
+      <field name="internal" type="bit"/>
+      <field name="nowait" type="bit"/>
+      <field name="arguments" type="table"/>
+    </method>
+    <method name="declare-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="delete" synchronous="1" index="20">
+      <chassis name="server" implement="MUST"/>
+      <response name="delete-ok"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="exchange" domain="exchange name">
+        <assert check="notnull"/>
+      </field>
+      <field name="if unused" type="bit"/>
+      <field name="nowait" type="bit"/>
+    </method>
+    <method name="delete-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="bound" synchronous="1" index="22">
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" type="shortstr"/>
+      <field name="queue" domain="queue name"/>
+    </method>
+    <method name="bound-ok" synchronous="1" index="23">
+      <field name="reply code" domain="reply code"/>
+      <field name="reply text" domain="reply text"/>
+    </method>
+  </class>
+  <class name="queue" handler="channel" index="50">
+    <chassis name="server" implement="MUST"/>
+    <chassis name="client" implement="MUST"/>
+    <method name="declare" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="declare-ok"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="queue" domain="queue name">
+        <assert check="regexp" value="^[a-zA-Z0-9-_.:]*$"/>
+      </field>
+      <field name="passive" type="bit"/>
+      <field name="durable" type="bit"/>
+      <field name="exclusive" type="bit"/>
+      <field name="auto delete" type="bit"/>
+      <field name="nowait" type="bit"/>
+      <field name="arguments" type="table"/>
+    </method>
+    <method name="declare-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+      <field name="queue" domain="queue name">
+        <assert check="notnull"/>
+      </field>
+      <field name="message count" type="long"/>
+      <field name="consumer count" type="long"/>
+    </method>
+    <method name="bind" synchronous="1" index="20">
+      <chassis name="server" implement="MUST"/>
+      <response name="bind-ok"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="queue" domain="queue name"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" type="shortstr"/>
+      <field name="nowait" type="bit"/>
+      <field name="arguments" type="table"/>
+    </method>
+    <method name="bind-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="purge" synchronous="1" index="30">
+      <chassis name="server" implement="MUST"/>
+      <response name="purge-ok"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="queue" domain="queue name"/>
+      <field name="nowait" type="bit"/>
+    </method>
+    <method name="purge-ok" synchronous="1" index="31">
+      <chassis name="client" implement="MUST"/>
+      <field name="message count" type="long"/>
+    </method>
+    <method name="delete" synchronous="1" index="40">
+      <chassis name="server" implement="MUST"/>
+      <response name="delete-ok"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="queue" domain="queue name"/>
+      <field name="if unused" type="bit"/>
+      <field name="if empty" type="bit">
+        <test/>
+      </field>
+      <field name="nowait" type="bit"/>
+    </method>
+    <method name="delete-ok" synchronous="1" index="41">
+      <chassis name="client" implement="MUST"/>
+      <field name="message count" type="long"/>
+    </method>
+  </class>
+  <class name="basic" handler="channel" index="60">
+    <chassis name="server" implement="MUST"/>
+    <chassis name="client" implement="MAY"/>
+    <field name="content type" type="shortstr"/>
+    <field name="content encoding" type="shortstr"/>
+    <field name="headers" type="table"/>
+    <field name="delivery mode" type="octet"/>
+    <field name="priority" type="octet"/>
+    <field name="correlation id" type="shortstr"/>
+    <field name="reply to" type="shortstr"/>
+    <field name="expiration" type="shortstr"/>
+    <field name="message id" type="shortstr"/>
+    <field name="timestamp" type="timestamp"/>
+    <field name="type" type="shortstr"/>
+    <field name="user id" type="shortstr"/>
+    <field name="app id" type="shortstr"/>
+    <field name="cluster id" type="shortstr"/>
+    <method name="qos" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="qos-ok"/>
+      <field name="prefetch size" type="long"/>
+      <field name="prefetch count" type="short"/>
+      <field name="global" type="bit"/>
+    </method>
+    <method name="qos-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="consume" synchronous="1" index="20">
+      <chassis name="server" implement="MUST"/>
+      <response name="consume-ok"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="queue" domain="queue name"/>
+      <field name="consumer tag" domain="consumer tag"/>
+      <field name="no local" domain="no local"/>
+      <field name="no ack" domain="no ack"/>
+      <field name="exclusive" type="bit"/>
+      <field name="nowait" type="bit"/>
+      <field name="arguments" type="table"/>
+    </method>
+    <method name="consume-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer tag" domain="consumer tag"/>
+    </method>
+    <method name="cancel" synchronous="1" index="30">
+      <chassis name="server" implement="MUST"/>
+      <response name="cancel-ok"/>
+      <field name="consumer tag" domain="consumer tag"/>
+      <field name="nowait" type="bit"/>
+    </method>
+    <method name="cancel-ok" synchronous="1" index="31">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer tag" domain="consumer tag"/>
+    </method>
+    <method name="publish" content="1" index="40">
+      <chassis name="server" implement="MUST"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" type="shortstr"/>
+      <field name="mandatory" type="bit"/>
+      <field name="immediate" type="bit"/>
+    </method>
+    <method name="return" content="1" index="50">
+      <chassis name="client" implement="MUST"/>
+      <field name="reply code" domain="reply code"/>
+      <field name="reply text" domain="reply text"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" type="shortstr"/>
+    </method>
+    <method name="deliver" content="1" index="60">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer tag" domain="consumer tag"/>
+      <field name="delivery tag" domain="delivery tag"/>
+      <field name="redelivered" domain="redelivered"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" type="shortstr"/>
+    </method>
+    <method name="get" synchronous="1" index="70">
+      <response name="get-ok"/>
+      <response name="get-empty"/>
+      <chassis name="server" implement="MUST"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="queue" domain="queue name"/>
+      <field name="no ack" domain="no ack"/>
+    </method>
+    <method name="get-ok" synchronous="1" content="1" index="71">
+      <chassis name="client" implement="MAY"/>
+      <field name="delivery tag" domain="delivery tag"/>
+      <field name="redelivered" domain="redelivered"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" type="shortstr"/>
+      <field name="message count" type="long"/>
+    </method>
+    <method name="get-empty" synchronous="1" index="72">
+      <chassis name="client" implement="MAY"/>
+      <field name="cluster id" type="shortstr"/>
+    </method>
+    <method name="ack" index="80">
+      <chassis name="server" implement="MUST"/>
+      <field name="delivery tag" domain="delivery tag"/>
+      <field name="multiple" type="bit"/>
+    </method>
+    <method name="reject" index="90">
+      <chassis name="server" implement="MUST"/>
+      <field name="delivery tag" domain="delivery tag"/>
+      <field name="requeue" type="bit"/>
+    </method>
+    <method name="recover" index="100">
+      <chassis name="server" implement="MUST"/>
+      <field name="requeue" type="bit"/>
+      <response name="recover-ok"/>
+    </method>
+    <method name="recover-ok" synchronous="1" index="101">
+      <chassis name="client" implement="MUST"/>
+    </method>
+  </class>
+  <class name="file" handler="channel" index="70">
+    <chassis name="server" implement="MAY"/>
+    <chassis name="client" implement="MAY"/>
+    <field name="content type" type="shortstr"/>
+    <field name="content encoding" type="shortstr"/>
+    <field name="headers" type="table"/>
+    <field name="priority" type="octet"/>
+    <field name="reply to" type="shortstr"/>
+    <field name="message id" type="shortstr"/>
+    <field name="filename" type="shortstr"/>
+    <field name="timestamp" type="timestamp"/>
+    <field name="cluster id" type="shortstr"/>
+    <method name="qos" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="qos-ok"/>
+      <field name="prefetch size" type="long"/>
+      <field name="prefetch count" type="short"/>
+      <field name="global" type="bit"/>
+    </method>
+    <method name="qos-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="consume" synchronous="1" index="20">
+      <chassis name="server" implement="MUST"/>
+      <response name="consume-ok"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="queue" domain="queue name"/>
+      <field name="consumer tag" domain="consumer tag"/>
+      <field name="no local" domain="no local"/>
+      <field name="no ack" domain="no ack"/>
+      <field name="exclusive" type="bit"/>
+      <field name="nowait" type="bit"/>
+    </method>
+    <method name="consume-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer tag" domain="consumer tag"/>
+    </method>
+    <method name="cancel" synchronous="1" index="30">
+      <chassis name="server" implement="MUST"/>
+      <response name="cancel-ok"/>
+      <field name="consumer tag" domain="consumer tag"/>
+      <field name="nowait" type="bit"/>
+    </method>
+    <method name="cancel-ok" synchronous="1" index="31">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer tag" domain="consumer tag"/>
+    </method>
+    <method name="open" synchronous="1" index="40">
+      <response name="open-ok"/>
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+      <field name="identifier" type="shortstr"/>
+      <field name="content size" type="longlong"/>
+    </method>
+    <method name="open-ok" synchronous="1" index="41">
+      <response name="stage"/>
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+      <field name="staged size" type="longlong"/>
+    </method>
+    <method name="stage" content="1" index="50">
+      <chassis name="server" implement="MUST"/>
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="publish" index="60">
+      <chassis name="server" implement="MUST"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" type="shortstr"/>
+      <field name="mandatory" type="bit"/>
+      <field name="immediate" type="bit"/>
+      <field name="identifier" type="shortstr"/>
+    </method>
+    <method name="return" content="1" index="70">
+      <chassis name="client" implement="MUST"/>
+      <field name="reply code" domain="reply code"/>
+      <field name="reply text" domain="reply text"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" type="shortstr"/>
+    </method>
+    <method name="deliver" index="80">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer tag" domain="consumer tag"/>
+      <field name="delivery tag" domain="delivery tag"/>
+      <field name="redelivered" domain="redelivered"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" type="shortstr"/>
+      <field name="identifier" type="shortstr"/>
+    </method>
+    <method name="ack" index="90">
+      <chassis name="server" implement="MUST"/>
+      <field name="delivery tag" domain="delivery tag"/>
+      <field name="multiple" type="bit"/>
+    </method>
+    <method name="reject" index="100">
+      <chassis name="server" implement="MUST"/>
+      <field name="delivery tag" domain="delivery tag"/>
+      <field name="requeue" type="bit"/>
+    </method>
+  </class>
+  <class name="stream" handler="channel" index="80">
+    <chassis name="server" implement="MAY"/>
+    <chassis name="client" implement="MAY"/>
+    <field name="content type" type="shortstr"/>
+    <field name="content encoding" type="shortstr"/>
+    <field name="headers" type="table"/>
+    <field name="priority" type="octet"/>
+    <field name="timestamp" type="timestamp"/>
+    <method name="qos" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="qos-ok"/>
+      <field name="prefetch size" type="long"/>
+      <field name="prefetch count" type="short"/>
+      <field name="consume rate" type="long"/>
+      <field name="global" type="bit"/>
+    </method>
+    <method name="qos-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="consume" synchronous="1" index="20">
+      <chassis name="server" implement="MUST"/>
+      <response name="consume-ok"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="queue" domain="queue name"/>
+      <field name="consumer tag" domain="consumer tag"/>
+      <field name="no local" domain="no local"/>
+      <field name="exclusive" type="bit"/>
+      <field name="nowait" type="bit"/>
+    </method>
+    <method name="consume-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer tag" domain="consumer tag"/>
+    </method>
+    <method name="cancel" synchronous="1" index="30">
+      <chassis name="server" implement="MUST"/>
+      <response name="cancel-ok"/>
+      <field name="consumer tag" domain="consumer tag"/>
+      <field name="nowait" type="bit"/>
+    </method>
+    <method name="cancel-ok" synchronous="1" index="31">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer tag" domain="consumer tag"/>
+    </method>
+    <method name="publish" content="1" index="40">
+      <chassis name="server" implement="MUST"/>
+      <field name="ticket" domain="access ticket"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" type="shortstr"/>
+      <field name="mandatory" type="bit"/>
+      <field name="immediate" type="bit"/>
+    </method>
+    <method name="return" content="1" index="50">
+      <chassis name="client" implement="MUST"/>
+      <field name="reply code" domain="reply code"/>
+      <field name="reply text" domain="reply text"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="routing key" type="shortstr"/>
+    </method>
+    <method name="deliver" content="1" index="60">
+      <chassis name="client" implement="MUST"/>
+      <field name="consumer tag" domain="consumer tag"/>
+      <field name="delivery tag" domain="delivery tag"/>
+      <field name="exchange" domain="exchange name"/>
+      <field name="queue" domain="queue name">
+        <assert check="notnull"/>
+      </field>
+    </method>
+  </class>
+  <class name="tx" handler="channel" index="90">
+    <chassis name="server" implement="SHOULD"/>
+    <chassis name="client" implement="MAY"/>
+    <method name="select" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="select-ok"/>
+    </method>
+    <method name="select-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="commit" synchronous="1" index="20">
+      <chassis name="server" implement="MUST"/>
+      <response name="commit-ok"/>
+    </method>
+    <method name="commit-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="rollback" synchronous="1" index="30">
+      <chassis name="server" implement="MUST"/>
+      <response name="rollback-ok"/>
+    </method>
+    <method name="rollback-ok" synchronous="1" index="31">
+      <chassis name="client" implement="MUST"/>
+    </method>
+  </class>
+  <class name="dtx" handler="channel" index="100">
+    <chassis name="server" implement="MAY"/>
+    <chassis name="client" implement="MAY"/>
+    <method name="select" synchronous="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <response name="select-ok"/>
+    </method>
+    <method name="select-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+    </method>
+    <method name="start" synchronous="1" index="20">
+      <chassis name="server" implement="MAY"/>
+      <response name="start-ok"/>
+      <field name="dtx identifier" type="shortstr">
+        <assert check="notnull"/>
+      </field>
+    </method>
+    <method name="start-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+    </method>
+  </class>
+  <class name="tunnel" handler="tunnel" index="110">
+    <chassis name="server" implement="MAY"/>
+    <chassis name="client" implement="MAY"/>
+    <field name="headers" type="table"/>
+    <field name="proxy name" type="shortstr"/>
+    <field name="data name" type="shortstr"/>
+    <field name="durable" type="octet"/>
+    <field name="broadcast" type="octet"/>
+    <method name="request" content="1" index="10">
+      <chassis name="server" implement="MUST"/>
+      <field name="meta data" type="table"/>
+    </method>
+  </class>
+  <class name="test" handler="channel" index="120">
+    <chassis name="server" implement="MUST"/>
+    <chassis name="client" implement="SHOULD"/>
+    <method name="integer" synchronous="1" index="10">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <response name="integer-ok"/>
+      <field name="integer 1" type="octet"/>
+      <field name="integer 2" type="short"/>
+      <field name="integer 3" type="long"/>
+      <field name="integer 4" type="longlong"/>
+      <field name="operation" type="octet">
+        <assert check="enum">
+          <value name="add"/>
+          <value name="min"/>
+          <value name="max"/>
+        </assert>
+      </field>
+    </method>
+    <method name="integer-ok" synchronous="1" index="11">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <field name="result" type="longlong"/>
+    </method>
+    <method name="string" synchronous="1" index="20">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <response name="string-ok"/>
+      <field name="string 1" type="shortstr"/>
+      <field name="string 2" type="longstr"/>
+      <field name="operation" type="octet">
+        <assert check="enum">
+          <value name="add"/>
+          <value name="min"/>
+          <value name="max"/>
+        </assert>
+      </field>
+    </method>
+    <method name="string-ok" synchronous="1" index="21">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <field name="result" type="longstr"/>
+    </method>
+    <method name="table" synchronous="1" index="30">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <response name="table-ok"/>
+      <field name="table" type="table"/>
+      <field name="integer op" type="octet">
+        <assert check="enum">
+          <value name="add"/>
+          <value name="min"/>
+          <value name="max"/>
+        </assert>
+      </field>
+      <field name="string op" type="octet">
+        <assert check="enum">
+          <value name="add"/>
+          <value name="min"/>
+          <value name="max"/>
+        </assert>
+      </field>
+    </method>
+    <method name="table-ok" synchronous="1" index="31">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <field name="integer result" type="longlong"/>
+      <field name="string result" type="longstr"/>
+    </method>
+    <method name="content" synchronous="1" content="1" index="40">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <response name="content-ok"/>
+    </method>
+    <method name="content-ok" synchronous="1" content="1" index="41">
+      <chassis name="client" implement="MUST"/>
+      <chassis name="server" implement="MUST"/>
+      <field name="content checksum" type="long"/>
+    </method>
+  </class>
+</amqp>
diff --git a/mcs/class/RabbitMQ.Client/src/apigen/AmqpClass.cs b/mcs/class/RabbitMQ.Client/src/apigen/AmqpClass.cs
new file mode 100644
index 0000000..d682f22
--- /dev/null
+++ b/mcs/class/RabbitMQ.Client/src/apigen/AmqpClass.cs
@@ -0,0 +1,97 @@
+// This source code is dual-licensed under the Apache License, version
+// 2.0, and the Mozilla Public License, version 1.1.
+//
+// The APL v2.0:
+//
+//---------------------------------------------------------------------------
+//   Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+//   Technologies LLC., and Rabbit Technologies Ltd.
+//
+//   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.
+//---------------------------------------------------------------------------
+//
+// The MPL v1.1:
+//
+//---------------------------------------------------------------------------
+//   The contents of this file are subject to the Mozilla Public License
+//   Version 1.1 (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.rabbitmq.com/mpl.html
+//
+//   Software distributed under the License is distributed on an "AS IS"
+//   basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+//   License for the specific language governing rights and limitations
+//   under the License.
+//
+//   The Original Code is The RabbitMQ .NET Client.
+//
+//   The Initial Developers of the Original Code are LShift Ltd.,
+//   Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+//
+//   Portions created by LShift Ltd., Cohesive Financial Technologies
+//   LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
+//   LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
+//   Technologies Ltd.;
+//
+//   All Rights Reserved.
+//
+//   Contributor(s): ______________________________________.
+//
+//---------------------------------------------------------------------------
+using System;
+using System.Collections;
+using System.Xml;
+
+namespace RabbitMQ.Client.Apigen {
+    public class AmqpClass: AmqpEntity {
+        public ArrayList Methods;
+        public ArrayList Fields;
+
+        public AmqpClass(XmlNode n)
+            : base(n)
+        {
+            Methods = new ArrayList();
+            foreach (XmlNode m in n.SelectNodes("method")) {
+                Methods.Add(new AmqpMethod(m));
+            }
+            Fields = new ArrayList();
+            foreach (XmlNode f in n.SelectNodes("field")) {
+                Fields.Add(new AmqpField(f));
+            }
+        }
+
+        public int Index {
+            get {
+                return GetInt("@index");
+            }
+        }
+
+        public bool NeedsProperties {
+            get {
+                foreach (AmqpMethod m in Methods) {
+                    if (m.HasContent) return true;
+                }
+                return false;
+            }
+        }
+
+        public AmqpMethod MethodNamed(string name) {
+            foreach (AmqpMethod m in Methods) {
+                if (m.Name == name) {
+                    return m;
+                }
+            }
+            return null;
+        }
+    }
+}
diff --git a/mcs/class/RabbitMQ.Client/src/apigen/AmqpEntity.cs b/mcs/class/RabbitMQ.Client/src/apigen/AmqpEntity.cs
new file mode 100644
index 0000000..e1e9c95
--- /dev/null
+++ b/mcs/class/RabbitMQ.Client/src/apigen/AmqpEntity.cs
@@ -0,0 +1,103 @@
+// This source code is dual-licensed under the Apache License, version
+// 2.0, and the Mozilla Public License, version 1.1.
+//
+// The APL v2.0:
+//
+//---------------------------------------------------------------------------
+//   Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+//   Technologies LLC., and Rabbit Technologies Ltd.
+//
+//   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.
+//---------------------------------------------------------------------------
+//
+// The MPL v1.1:
+//
+//---------------------------------------------------------------------------
+//   The contents of this file are subject to the Mozilla Public License
+//   Version 1.1 (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.rabbitmq.com/mpl.html
+//
+//   Software distributed under the License is distributed on an "AS IS"
+//   basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+//   License for the specific language governing rights and limitations
+//   under the License.
+//
+//   The Original Code is The RabbitMQ .NET Client.
+//
+//   The Initial Developers of the Original Code are LShift Ltd.,
+//   Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+//
+//   Portions created by LShift Ltd., Cohesive Financial Technologies
+//   LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
+//   LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
+//   Technologies Ltd.;
+//
+//   All Rights Reserved.
+//
+//   Contributor(s): ______________________________________.
+//
+//---------------------------------------------------------------------------
+using System;
+using System.Xml;
+
+namespace RabbitMQ.Client.Apigen {
+    public class AmqpEntity {
+        public XmlNode node;
+
+        public AmqpEntity(XmlNode n) {
+            this.node = n;
+        }
+
+        public string GetString(string path) {
+            return Apigen.GetString(node, path);
+        }
+
+        public string GetString(string path, string d) {
+            return Apigen.GetString(node, path, d);
+        }
+
+        public int GetInt(string path) {
+            return Apigen.GetInt(node, path);
+        }
+
+        public string Name {
+            get {
+                return GetString("@name");
+            }
+        }
+
+        public string DocumentationComment(string prefixSpaces) {
+            return DocumentationComment(prefixSpaces, "doc");
+        }
+
+        public string DocumentationCommentVariant(string prefixSpaces, string tagname) {
+            return DocumentationComment(prefixSpaces, "doc", tagname);
+        }
+
+        public string DocumentationComment(string prefixSpaces, string docXpath) {
+            return DocumentationComment(prefixSpaces, docXpath, "summary");
+        }
+
+        public string DocumentationComment(string prefixSpaces, string docXpath, string tagname) {
+            string docStr = GetString(docXpath, "").Trim();
+            if (docStr.Length > 0) {
+                return (prefixSpaces + "/// <"+tagname+">\n" +
+                        GetString(docXpath, "") + "\n</"+tagname+">")
+                    .Replace("\n", "\n" + prefixSpaces + "/// ");
+            } else {
+                return prefixSpaces + "// (no documentation)";
+            }
+        }
+    }
+}
diff --git a/mcs/class/RabbitMQ.Client/src/apigen/AmqpField.cs b/mcs/class/RabbitMQ.Client/src/apigen/AmqpField.cs
new file mode 100644
index 0000000..778dd3b
--- /dev/null
+++ b/mcs/class/RabbitMQ.Client/src/apigen/AmqpField.cs
@@ -0,0 +1,68 @@
+// This source code is dual-licensed under the Apache License, version
+// 2.0, and the Mozilla Public License, version 1.1.
+//
+// The APL v2.0:
+//
+//---------------------------------------------------------------------------
+//   Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+//   Technologies LLC., and Rabbit Technologies Ltd.
+//
+//   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.
+//---------------------------------------------------------------------------
+//
+// The MPL v1.1:
+//
+//---------------------------------------------------------------------------
+//   The contents of this file are subject to the Mozilla Public License
+//   Version 1.1 (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.rabbitmq.com/mpl.html
+//
+//   Software distributed under the License is distributed on an "AS IS"
+//   basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+//   License for the specific language governing rights and limitations
+//   under the License.
+//
+//   The Original Code is The RabbitMQ .NET Client.
+//
+//   The Initial Developers of the Original Code are LShift Ltd.,
+//   Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+//
+//   Portions created by LShift Ltd., Cohesive Financial Technologies
+//   LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
+//   LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
+//   Technologies Ltd.;
+//
+//   All Rights Reserved.
+//
+//   Contributor(s): ______________________________________.
+//
+//---------------------------------------------------------------------------
+using System;
+using System.Xml;
+
+namespace RabbitMQ.Client.Apigen {
+    public class AmqpField: AmqpEntity {
+        public AmqpField(XmlNode n): base(n) {}
+
+        public string Domain {
+            get {
+                string result = GetString("@domain", "");
+                if (result.Equals("")) {
+                    result = GetString("@type");
+                }
+                return result;
+            }
+        }
+    }
+}
diff --git a/mcs/class/RabbitMQ.Client/src/apigen/AmqpMethod.cs b/mcs/class/RabbitMQ.Client/src/apigen/AmqpMethod.cs
new file mode 100644
index 0000000..f35c131
--- /dev/null
+++ b/mcs/class/RabbitMQ.Client/src/apigen/AmqpMethod.cs
@@ -0,0 +1,91 @@
+// This source code is dual-licensed under the Apache License, version
+// 2.0, and the Mozilla Public License, version 1.1.
+//
+// The APL v2.0:
+//
+//---------------------------------------------------------------------------
+//   Copyright (C) 2007, 2008 LShift Ltd., Cohesive Financial
+//   Technologies LLC., and Rabbit Technologies Ltd.
+//
+//   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.
+//---------------------------------------------------------------------------
+//
+// The MPL v1.1:
+//
+//---------------------------------------------------------------------------
+//   The contents of this file are subject to the Mozilla Public License
+//   Version 1.1 (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.rabbitmq.com/mpl.html
+//
+//   Software distributed under the License is distributed on an "AS IS"
+//   basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+//   License for the specific language governing rights and limitations
+//   under the License.
+//
+//   The Original Code is The RabbitMQ .NET Client.
+//
+//   The Initial Developers of the Original Code are LShift Ltd.,
+//   Cohesive Financial Technologies LLC., and Rabbit Technologies Ltd.
+//
+//   Portions created by LShift Ltd., Cohesive Financial Technologies
+//   LLC., and Rabbit Technologies Ltd. are Copyright (C) 2007, 2008
+//   LShift Ltd., Cohesive Financial Technologies LLC., and Rabbit
+//   Technologies Ltd.;
+//
+//   All Rights Reserved.
+//
+//   Contributor(s): ______________________________________.
+//
+//---------------------------------------------------------------------------
+using System;
+using System.Collections;
+using System.Xml;
+
+namespace RabbitMQ.Client.Apigen {
+    public class AmqpMethod: AmqpEntity {
+        public ArrayList Fields;
+        public ArrayList ResponseMethods;
+
+        public AmqpMethod(XmlNode n)
+            : base(n)
+        {
+            Fields = new ArrayList();
+            foreach (XmlNode f in n.SelectNodes("field")) {
+                Fields.Add(new AmqpField(f));
+            }
+            ResponseMethods = new ArrayList();
+            foreach (XmlNode r in n.SelectNodes("response")) {
+                ResponseMethods.Add(Apigen.GetString(r, "@name"));
+            }
+        }
+
+        public bool HasContent {
+            get {
+                return GetString("@content", null) != null;
+            }
+        }
+
+        public bool IsSimpleRpcRequest {
+            get {
+                return ResponseMethods.Count == 1;
+            }
+        }
+
+        public int Index {
+            get {
+                return GetInt("@index");
+            }
+        }
+    }
+}
diff --git a/mcs/class/RabbitMQ.Client/src/apigen/Apigen.cs b/mcs/class/RabbitMQ.Client/src/apigen/Apigen.cs
new file mode 100644
index 0000000..9082447
--- /dev/null
+++ b/mcs/class/RabbitMQ.Client/src/apigen/Apigen.cs
@@ -0,0 +1,1040 @@
+// This source code is dual-licensed under the Apache License, version
+// 2.0, and the Mozilla Public License, version 1.1.
+//
+// The APL v2.0:
+//
+//---------------------------------------------------------------------------
+//   Copyright (C) 2007-2009 LShift Ltd., Cohesive Financial
+//   Technologies LLC., and Rabbit Technologies Ltd.
+//
+//   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.
+//---------------------------------------------------------------------------
+//
+// The MPL v1.1:
+//
+//---------------------------------------------------------------------------
+//   The contents of this file are subject to the Mozilla Public License
+//   Version 1.1 (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.rabbitmq.com/mpl.html
+//
+//   Software distributed under the License is distributed on an "AS IS"
+//   basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+//   License for the specific language governing rights and limitations
+//   under the License.
+//
+//   The Original Code is The RabbitMQ .NET Client.
+//
+//   The Initial Developers of the Original Code are LShift Ltd,
+//   Cohesive Financial Technologies LLC, and Rabbit Technologies Ltd.
+//
+//   Portions created before 22-Nov-2008 00:00:00 GMT by LShift Ltd,
+//   Cohesive Financial Technologies LLC, or Rabbit Technologies Ltd
+//   are Copyright (C) 2007-2008 LShift Ltd, Cohesive Financial
+//   Technologies LLC, and Rabbit Technologies Ltd.
+//
+//   Portions created by LShift Ltd are Copyright (C) 2007-2009 LShift
+//   Ltd. Portions created by Cohesive Financial Technologies LLC are
+//   Copyright (C) 2007-2009 Cohesive Financial Technologies
+//   LLC. Portions created by Rabbit Technologies Ltd are Copyright
+//   (C) 2007-2009 Rabbit Technologies Ltd.
+//
+//   All Rights Reserved.
+//
+//   Contributor(s): ______________________________________.
+//
+//---------------------------------------------------------------------------
+using System;
+using System.Collections;
+using System.IO;
+using System.Reflection;
+using System.Text;
+using System.Xml;
+
+using RabbitMQ.Client.Apigen.Attributes;
+
+namespace RabbitMQ.Client.Apigen {
+    public class Apigen {
+        ///////////////////////////////////////////////////////////////////////////
+        // Entry point
+
+        public static void Main(string[] args) {
+            Apigen instance = new Apigen(new ArrayList(args));
+            instance.Generate();
+        }
+
+        ///////////////////////////////////////////////////////////////////////////
+        // XML utilities
+
+        public static XmlNodeList GetNodes(XmlNode n0, string path) {
+            return n0.SelectNodes(path);
+        }
+
+        public static string GetString(XmlNode n0, string path, string d) {
+            XmlNode n = n0.SelectSingleNode(path);
+            return (n == null) ? d : n.InnerText;
+        }
+
+        public static string GetString(XmlNode n0, string path) {
+            string s = GetString(n0, path, null);
+            if (s == null) {
+                throw new Exception("Missing spec XML node: " + path);
+            }
+            return s;
+        }
+
+        public static int GetInt(XmlNode n0, string path, int d) {
+            string s = GetString(n0, path, null);
+            return (s == null) ? d : int.Parse(s);
+        }
+
+        public static int GetInt(XmlNode n0, string path) {
+            return int.Parse(GetString(n0, path));
+        }
+
+        ///////////////////////////////////////////////////////////////////////////
+        // Name manipulation and mangling for C#
+
+        public static string MangleConstant(string name) {
+            // Previously, we used C_STYLE_CONSTANT_NAMES:
+            /*
+              return name
+              .Replace(" ", "_")
+              .Replace("-", "_").
+              ToUpper();
+            */
+            // ... but TheseKindsOfNames are more in line with .NET style guidelines.
+            return MangleClass(name);
+        }
+
+        public static ArrayList IdentifierParts(string name) {
+            ArrayList result = new ArrayList();
+            foreach (String s1 in name.Split(new Char[] { '-' })) {
+                foreach (String s2 in s1.Split(new Char[] { ' ' })) {
+                    result.Add(s2);
+                }
+            }
+            return result;
+        }
+
+        public static string MangleClass(string name) {
+            StringBuilder sb = new StringBuilder();
+            foreach (String s in IdentifierParts(name)) {
+                sb.Append(Char.ToUpper(s[0]) + s.Substring(1).ToLower());
+            }
+            return sb.ToString();
+        }
+
+        public static string MangleMethod(string name) {
+            StringBuilder sb = new StringBuilder();
+            bool useUpper = false;
+            foreach (String s in IdentifierParts(name)) {
+                if (useUpper) {
+                    sb.Append(Char.ToUpper(s[0]) + s.Substring(1).ToLower());
+                } else {
+                    sb.Append(s.ToLower());
+                    useUpper = true;
+                }
+            }
+            return sb.ToString();
+        }
+
+        public static string MangleMethodClass(AmqpClass c, AmqpMethod m) {
+            return MangleClass(c.Name) + MangleClass(m.Name);
+        }
+
+        ///////////////////////////////////////////////////////////////////////////
+
+        public string framingSubnamespace = null;
+        public string inputXmlFilename;
+        public string outputFilename;
+
+        public XmlDocument spec = null;
+        public TextWriter outputFile = null;
+
+        public bool versionOverridden = false;
+        public int majorVersion;
+        public int minorVersion;
+        public string apiName;
+        private bool emitComments = false;
+
+        public Type modelType = typeof(RabbitMQ.Client.Impl.IFullModel);
+	public ArrayList modelTypes = new ArrayList();
+        public ArrayList constants = new ArrayList();
+        public ArrayList classes = new ArrayList();
+        public Hashtable domains = new Hashtable();
+
+        public static Hashtable primitiveTypeMap;
+        public static Hashtable primitiveTypeFlagMap;
+        static Apigen() {
+            primitiveTypeMap = new Hashtable();
+	    primitiveTypeFlagMap = new Hashtable();
+            InitPrimitiveType("octet", "byte", false);
+            InitPrimitiveType("shortstr", "string", true);
+            InitPrimitiveType("longstr", "byte[]", true);
+            InitPrimitiveType("short", "ushort", false);
+            InitPrimitiveType("long", "uint", false);
+            InitPrimitiveType("longlong", "ulong", false);
+            InitPrimitiveType("bit", "bool", false);
+            InitPrimitiveType("table", "System.Collections.IDictionary", true);
+            InitPrimitiveType("timestamp", "AmqpTimestamp", false);
+            InitPrimitiveType("content", "byte[]", true);
+        }
+
+	public static void InitPrimitiveType(string amqpType, string dotnetType, bool isReference)
+	{
+	    primitiveTypeMap[amqpType] = dotnetType;
+	    primitiveTypeFlagMap[amqpType] = isReference;
+	}
+
+        public void HandleOption(string opt) {
+            if (opt.StartsWith("/n:")) {
+                framingSubnamespace = opt.Substring(3);
+            } else if (opt.StartsWith("/apiName:")) {
+                apiName = opt.Substring(9);
+            } else if (opt.StartsWith("/v:")) {
+                string[] parts = opt.Substring(3).Split(new char[] { '-' });
+                versionOverridden = true;
+                majorVersion = int.Parse(parts[0]);
+                minorVersion = int.Parse(parts[1]);
+            } else if (opt == "/c") {
+                emitComments = true;
+            } else {
+                Console.Error.WriteLine("Unsupported command-line option: " + opt);
+                Usage();
+            }
+        }
+
+        public void Usage() {
+            Console.Error.WriteLine("Usage: Apigen.exe [options ...] <input-spec-xml> <output-csharp-file>");
+            Console.Error.WriteLine("  Options include:");
+            Console.Error.WriteLine("    /apiName:<identifier>");
+            Console.Error.WriteLine("    /n:<name.space.prefix>");
+            Console.Error.WriteLine("    /v:<majorversion>-<minorversion>");
+            Console.Error.WriteLine("    /c");
+            Console.Error.WriteLine("  The apiName option is required.");
+            Environment.Exit(1);
+        }
+
+        public Apigen(ArrayList args) {
+            while (args.Count > 0 && ((string) args[0]).StartsWith("/")) {
+                HandleOption((string) args[0]);
+                args.RemoveAt(0);
+            }
+            if ((args.Count < 2)
+                || (apiName == null))
+            {
+                Usage();
+            }
+            this.inputXmlFilename = (string) args[0];
+            this.outputFilename = (string) args[1];
+        }
+
+        ///////////////////////////////////////////////////////////////////////////
+
+        public string FramingSubnamespace {
+            get {
+                if (framingSubnamespace == null) {
+                    return VersionToken();
+                } else {
+                    return framingSubnamespace;
+                }
+            }
+        }
+
+        public string ApiNamespaceBase {
+            get {
+                return "RabbitMQ.Client.Framing."+FramingSubnamespace;
+            }
+        }
+
+        public string ImplNamespaceBase {
+            get {
+                return "RabbitMQ.Client.Framing.Impl."+FramingSubnamespace;
+            }
+        }
+
+        public void Generate() {
+            LoadSpec();
+            ParseSpec();
+	    ReflectModel();
+            GenerateOutput();
+        }
+
+        public void LoadSpec() {
+            Console.WriteLine("* Loading spec from '" + this.inputXmlFilename + "'");
+            this.spec = new XmlDocument();
+            this.spec.Load(this.inputXmlFilename);
+        }
+
+        public void ParseSpec() {
+            Console.WriteLine("* Parsing spec");
+            if (!versionOverridden) {
+                majorVersion = GetInt(spec, "/amqp/@major");
+                minorVersion = GetInt(spec, "/amqp/@minor");
+            }
+            foreach (XmlNode n in spec.SelectNodes("/amqp/constant")) {
+                constants.Add(new DictionaryEntry(GetString(n, "@name"), GetInt(n, "@value")));
+            }
+            foreach (XmlNode n in spec.SelectNodes("/amqp/class")) {
+                classes.Add(new AmqpClass(n));
+            }
+            foreach (XmlNode n in spec.SelectNodes("/amqp/domain")) {
+                domains[GetString(n, "@name")] = GetString(n, "@type");
+            }
+        }
+
+	public void ReflectModel() {
+            modelTypes.Add(modelType);
+            for (int i = 0; i < modelTypes.Count; i++) {
+                foreach (Type intf in ((Type) modelTypes[i]).GetInterfaces()) {
+                    modelTypes.Add(intf);
+                }
+            }
+	}
+
+        public string ResolveDomain(string d) {
+            while (domains[d] != null) {
+                string newD = (string) domains[d];
+                if (d.Equals(newD))
+                    break;
+                d = newD;
+            }
+            return d;
+        }
+
+        public string MapDomain(string d) {
+            return (string) primitiveTypeMap[ResolveDomain(d)];
+        }
+
+        public string VersionToken() {
+            return "v" + majorVersion + "_" + minorVersion;
+        }
+
+        public void GenerateOutput() {
+            Console.WriteLine("* Generating code into '" + this.outputFilename + "'");
+            this.outputFile = new StreamWriter(this.outputFilename);
+            EmitPrelude();
+            EmitPublic();
+            EmitPrivate();
+            this.outputFile.Close();
+        }
+
+        public void Emit(object o) {
+            this.outputFile.Write(o);
+        }
+
+        public void EmitLine(object o) {
+            this.outputFile.WriteLine(o);
+        }
+
+        public void EmitPrelude() {
+            EmitLine("// Autogenerated code. Do not edit.");
+            EmitLine("");
+            EmitLine("using RabbitMQ.Client;");
+            EmitLine("using RabbitMQ.Client.Exceptions;");
+            EmitLine("");
+        }
+
+        public void EmitPublic() {
+            EmitLine("namespace "+ApiNamespaceBase+" {");
+            EmitLine("  public class Protocol: "+ImplNamespaceBase+".ProtocolBase {");
+            EmitLine("    ///<summary>Protocol major version (= "+majorVersion+")</summary>");
+            EmitLine("    public override int MajorVersion { get { return " + majorVersion + "; } }");
+            EmitLine("    ///<summary>Protocol minor version (= "+minorVersion+")</summary>");
+            EmitLine("    public override int MinorVersion { get { return " + minorVersion + "; } }");
+            EmitLine("    ///<summary>Protocol API name (= "+apiName+")</summary>");
+            EmitLine("    public override string ApiName { get { return \"" + apiName + "\"; } }");
+            int port = GetInt(spec, "/amqp/@port");
+            EmitLine("    ///<summary>Default TCP port (= "+port+")</summary>");
+            EmitLine("    public override int DefaultPort { get { return " + port + "; } }");
+            EmitLine("");
+            EmitMethodArgumentReader();
+            EmitLine("");
+            EmitContentHeaderReader();
+            EmitLine("  }");
+            EmitLine("  public class Constants {");
+            foreach (DictionaryEntry de in constants) {
+                EmitLine("    ///<summary>(= "+de.Value+")</summary>");
+                EmitLine("    public const int "+MangleConstant((string) de.Key)+" = "+de.Value+";");
+            }
+            EmitLine("  }");
+            foreach (AmqpClass c in classes) {
+                EmitClassMethods(c);
+            }
+            foreach (AmqpClass c in classes) {
+                if (c.NeedsProperties) {
+                    EmitClassProperties(c);
+                }
+            }
+            EmitLine("}");
+        }
+
+        public void EmitAutogeneratedSummary(string prefixSpaces, string extra) {
+            EmitLine(prefixSpaces+"/// <summary>Autogenerated type. "+extra+"</summary>");
+        }
+
+        public void EmitClassMethods(AmqpClass c) {
+            foreach (AmqpMethod m in c.Methods) {
+                EmitAutogeneratedSummary("  ",
+                                         "AMQP specification method \""+c.Name+"."+m.Name+"\".");
+                if (emitComments)
+                    EmitLine(m.DocumentationCommentVariant("  ", "remarks"));
+                EmitLine("  public interface I"+MangleMethodClass(c, m)+": IMethod {");
+                foreach (AmqpField f in m.Fields) {
+                    if (emitComments)
+                        EmitLine(f.DocumentationComment("    "));
+                    EmitLine("    "+MapDomain(f.Domain)+" "+MangleClass(f.Name)+" { get; }");
+                }
+                EmitLine("  }");
+            }
+        }
+
+	public bool HasFactoryMethod(AmqpClass c) {
+	    foreach (Type t in modelTypes) {
+		foreach (MethodInfo method in t.GetMethods()) {
+		    AmqpContentHeaderFactoryAttribute f = (AmqpContentHeaderFactoryAttribute)
+			Attribute(method, typeof(AmqpContentHeaderFactoryAttribute));
+		    if (f != null && MangleClass(f.m_contentClass) == MangleClass(c.Name)) {
+			return true;
+		    }
+		}
+	    }
+	    return false;
+	}
+
+	public bool IsBoolean(AmqpField f) {
+	    return ResolveDomain(f.Domain) == "bit";
+	}
+
+	public bool IsReferenceType(AmqpField f) {
+	    return (bool) primitiveTypeFlagMap[ResolveDomain(f.Domain)];
+	}
+
+        public void EmitClassProperties(AmqpClass c) {
+	    bool hasCommonApi = HasFactoryMethod(c);
+	    string propertiesBaseClass =
+		hasCommonApi
+		? "RabbitMQ.Client.Impl."+MangleClass(c.Name)+"Properties"
+		: "RabbitMQ.Client.Impl.ContentHeaderBase";
+	    string maybeOverride = hasCommonApi ? "override " : "";
+
+            EmitAutogeneratedSummary("  ",
+                                     "AMQP specification content header properties for "+
+                                     "content class \""+c.Name+"\"");
+            if (emitComments)
+                EmitLine(c.DocumentationCommentVariant("  ", "remarks"));
+            EmitLine("  public class "+MangleClass(c.Name)
+                     +"Properties: "+propertiesBaseClass+" {");
+            foreach (AmqpField f in c.Fields) {
+                EmitLine("    private "+MapDomain(f.Domain)+" m_"+MangleMethod(f.Name)+";");
+            }
+            EmitLine("");
+            foreach (AmqpField f in c.Fields) {
+		if (!IsBoolean(f)) {
+		    EmitLine("    private bool "+MangleMethod(f.Name)+"_present = false;");
+		}
+            }
+            EmitLine("");
+            foreach (AmqpField f in c.Fields) {
+                if (emitComments)
+                    EmitLine(f.DocumentationComment("    ", "@label"));
+                EmitLine("    public "+maybeOverride+MapDomain(f.Domain)+" "+MangleClass(f.Name)+" {");
+                EmitLine("      get {");
+                EmitLine("        return m_"+MangleMethod(f.Name)+";");
+                EmitLine("      }");
+                EmitLine("      set {");
+		if (!IsBoolean(f)) {
+		    EmitLine("        "+MangleMethod(f.Name)+"_present = true;");
+		}
+                EmitLine("        m_"+MangleMethod(f.Name)+" = value;");
+                EmitLine("      }");
+                EmitLine("    }");
+            }
+            EmitLine("");
+            foreach (AmqpField f in c.Fields) {
+		if (!IsBoolean(f)) {
+		    EmitLine("    public "+maybeOverride+"void Clear"+MangleClass(f.Name)+"() { "+MangleMethod(f.Name)+"_present = false; }");
+		}
+            }
+            EmitLine("");
+            EmitLine("    public "+MangleClass(c.Name)+"Properties() {}");
+            EmitLine("    public override int ProtocolClassId { get { return "+c.Index+"; } }");
+            EmitLine("    public override string ProtocolClassName { get { return \""+c.Name+"\"; } }");
+            EmitLine("");
+            EmitLine("    public override void ReadPropertiesFrom(RabbitMQ.Client.Impl.ContentHeaderPropertyReader reader) {");
+            foreach (AmqpField f in c.Fields) {
+		if (IsBoolean(f)) {
+		    EmitLine("      m_"+MangleMethod(f.Name)+" = reader.ReadBit();");
+		} else {
+		    EmitLine("      "+MangleMethod(f.Name)+"_present = reader.ReadPresence();");
+		}
+            }
+	    EmitLine("      reader.FinishPresence();");
+            foreach (AmqpField f in c.Fields) {
+		if (!IsBoolean(f)) {
+		    EmitLine("      if ("+MangleMethod(f.Name)+"_present) { m_"+MangleMethod(f.Name)+" = reader.Read"+MangleClass(ResolveDomain(f.Domain))+"(); }");
+		}
+            }
+            EmitLine("    }");
+            EmitLine("");
+            EmitLine("    public override void WritePropertiesTo(RabbitMQ.Client.Impl.ContentHeaderPropertyWriter writer) {");
+            foreach (AmqpField f in c.Fields) {
+		if (IsBoolean(f)) {
+		    EmitLine("      writer.WriteBit(m_"+MangleMethod(f.Name)+");");
+		} else {
+		    EmitLine("      writer.WritePresence("+MangleMethod(f.Name)+"_present);");
+		}
+            }
+	    EmitLine("      writer.FinishPresence();");
+            foreach (AmqpField f in c.Fields) {
+		if (!IsBoolean(f)) {
+		    EmitLine("      if ("+MangleMethod(f.Name)+"_present) { writer.Write"+MangleClass(ResolveDomain(f.Domain))+"(m_"+MangleMethod(f.Name)+"); }");
+		}
+            }
+            EmitLine("    }");
+            EmitLine("");
+            EmitLine("    public override void AppendPropertyDebugStringTo(System.Text.StringBuilder sb) {");
+            EmitLine("      sb.Append(\"(\");");
+            {
+                int remaining = c.Fields.Count;
+                foreach (AmqpField f in c.Fields) {
+                    Emit("      sb.Append(\""+f.Name+"=\");");
+		    if (IsBoolean(f)) {
+			Emit(" sb.Append(m_"+MangleMethod(f.Name)+");");
+		    } else {
+			string x = MangleMethod(f.Name);
+			if (IsReferenceType(f)) {
+			    Emit(" sb.Append("+x+"_present ? (m_"+x+" == null ? \"(null)\" : m_"+x+".ToString()) : \"_\");");
+			} else {
+			    Emit(" sb.Append("+x+"_present ? m_"+x+".ToString() : \"_\");");
+			}
+		    }
+                    remaining--;
+                    if (remaining > 0) {
+                        EmitLine(" sb.Append(\", \");");
+                    } else {
+                        EmitLine("");
+                    }
+                }
+            }
+            EmitLine("      sb.Append(\")\");");
+            EmitLine("    }");
+            EmitLine("  }");
+        }
+
+        public void EmitPrivate() {
+            EmitLine("namespace "+ImplNamespaceBase+" {");
+            EmitLine("  using "+ApiNamespaceBase+";");
+            EmitLine("  public enum ClassId {");
+            foreach (AmqpClass c in classes) {
+                EmitLine("    "+MangleConstant(c.Name)+" = "+c.Index+",");
+            }
+            EmitLine("    Invalid = -1");
+            EmitLine("  }");
+            foreach (AmqpClass c in classes) {
+                EmitClassMethodImplementations(c);
+            }
+            EmitLine("");
+            EmitModelImplementation();
+            EmitLine("}");
+        }
+
+        public void EmitClassMethodImplementations(AmqpClass c) {
+            foreach (AmqpMethod m in c.Methods) {
+                EmitAutogeneratedSummary("  ",
+                                         "Private implementation class - do not use directly.");
+                EmitLine("  public class "+MangleMethodClass(c,m)
+                         +": RabbitMQ.Client.Impl.MethodBase, I"+MangleMethodClass(c,m)+" {");
+                EmitLine("    public const int ClassId = "+c.Index+";");
+                EmitLine("    public const int MethodId = "+m.Index+";");
+                EmitLine("");
+                foreach (AmqpField f in m.Fields) {
+                    EmitLine("    public "+MapDomain(f.Domain)+" m_"+MangleMethod(f.Name)+";");
+                }
+                EmitLine("");
+                foreach (AmqpField f in m.Fields) {
+                    EmitLine("    "+MapDomain(f.Domain)+" I"+MangleMethodClass(c,m)+
+                             "."+MangleClass(f.Name)+" { get {"
+                             +" return m_"+MangleMethod(f.Name)+"; } }");
+                }
+                EmitLine("");
+                if (m.Fields.Count > 0) {
+                    EmitLine("    public "+MangleMethodClass(c,m)+"() {}");
+                }
+                EmitLine("    public "+MangleMethodClass(c,m)+"(");
+                {
+                    int remaining = m.Fields.Count;
+                    foreach (AmqpField f in m.Fields) {
+                        Emit("      "+MapDomain(f.Domain)+" init"+MangleClass(f.Name));
+                        remaining--;
+                        if (remaining > 0) {
+                            EmitLine(",");
+                        }
+                    }
+                }
+                EmitLine(")");
+                EmitLine("    {");
+                foreach (AmqpField f in m.Fields) {
+                    EmitLine("      m_"+MangleMethod(f.Name)+" = init"+MangleClass(f.Name)+";");
+                }
+                EmitLine("    }");
+                EmitLine("");
+                EmitLine("    public override int ProtocolClassId { get { return "+c.Index+"; } }");
+                EmitLine("    public override int ProtocolMethodId { get { return "+m.Index+"; } }");
+                EmitLine("    public override string ProtocolMethodName { get { return \""+c.Name+"."+m.Name+"\"; } }");
+                EmitLine("    public override bool HasContent { get { return "
+                         +(m.HasContent ? "true" : "false")+"; } }");
+                EmitLine("");
+                EmitLine("    public override void ReadArgumentsFrom(RabbitMQ.Client.Impl.MethodArgumentReader reader) {");
+                foreach (AmqpField f in m.Fields) {
+                    EmitLine("      m_"+MangleMethod(f.Name)+" = reader.Read"+MangleClass(ResolveDomain(f.Domain))+"();");
+                }
+                EmitLine("    }");
+                EmitLine("");
+                EmitLine("    public override void WriteArgumentsTo(RabbitMQ.Client.Impl.MethodArgumentWriter writer) {");
+                foreach (AmqpField f in m.Fields) {
+                    EmitLine("      writer.Write"+MangleClass(ResolveDomain(f.Domain))
+                             +"(m_"+MangleMethod(f.Name)+");");
+                }
+                EmitLine("    }");
+                EmitLine("");
+                EmitLine("    public override void AppendArgumentDebugStringTo(System.Text.StringBuilder sb) {");
+                EmitLine("      sb.Append(\"(\");");
+                {
+                    int remaining = m.Fields.Count;
+                    foreach (AmqpField f in m.Fields) {
+                        Emit("      sb.Append(m_"+MangleMethod(f.Name)+");");
+                        remaining--;
+                        if (remaining > 0) {
+                            EmitLine(" sb.Append(\",\");");
+                        } else {
+                            EmitLine("");
+                        }
+                    }
+                }
+                EmitLine("      sb.Append(\")\");");
+                EmitLine("    }");
+                EmitLine("  }");
+            }
+        }
+
+        public void EmitMethodArgumentReader() {
+            EmitLine("    public override RabbitMQ.Client.Impl.MethodBase DecodeMethodFrom(RabbitMQ.Util.NetworkBinaryReader reader) {");
+            EmitLine("      ushort classId = reader.ReadUInt16();");
+            EmitLine("      ushort methodId = reader.ReadUInt16();");
+            EmitLine("");
+            EmitLine("      switch (classId) {");
+            foreach (AmqpClass c in classes) {
+                EmitLine("        case "+c.Index+": {");
+                EmitLine("          switch (methodId) {");
+                foreach (AmqpMethod m in c.Methods) {
+                    EmitLine("            case "+m.Index+": {");
+                    EmitLine("              "+ImplNamespaceBase+"."+MangleMethodClass(c,m)+" result = new "+ImplNamespaceBase+"."+MangleMethodClass(c,m)+"();");
+                    EmitLine("              result.ReadArgumentsFrom(new RabbitMQ.Client.Impl.MethodArgumentReader(reader));");
+                    EmitLine("              return result;");
+                    EmitLine("            }");
+                }
+                EmitLine("            default: break;");
+                EmitLine("          }");
+                EmitLine("          break;");
+                EmitLine("        }");
+            }
+            EmitLine("        default: break;");
+            EmitLine("      }");
+            EmitLine("      throw new RabbitMQ.Client.Impl.UnknownClassOrMethodException(classId, methodId);");
+            EmitLine("    }");
+        }
+
+        public void EmitContentHeaderReader() {
+            EmitLine("    public override RabbitMQ.Client.Impl.ContentHeaderBase DecodeContentHeaderFrom(RabbitMQ.Util.NetworkBinaryReader reader) {");
+            EmitLine("      ushort classId = reader.ReadUInt16();");
+            EmitLine("");
+            EmitLine("      switch (classId) {");
+            foreach (AmqpClass c in classes) {
+                if (c.NeedsProperties) {
+                    EmitLine("        case "+c.Index+": return new "
+                             +MangleClass(c.Name)+"Properties();");
+                }
+            }
+            EmitLine("        default: break;");
+            EmitLine("      }");
+            EmitLine("      throw new RabbitMQ.Client.Impl.UnknownClassOrMethodException(classId, 0);");
+            EmitLine("    }");
+        }
+
+        public Attribute Attribute(MemberInfo mi, Type t) {
+            return Attribute(mi.GetCustomAttributes(t, false), t);
+        }
+
+        public Attribute Attribute(ParameterInfo pi, Type t) {
+            return Attribute(pi.GetCustomAttributes(t, false), t);
+        }
+
+        public Attribute Attribute(ICustomAttributeProvider p, Type t) {
+            return Attribute(p.GetCustomAttributes(t, false), t);
+        }
+
+        public Attribute Attribute(IEnumerable attributes, Type t) {
+            if (t.IsSubclassOf(typeof(AmqpApigenAttribute))) {
+                AmqpApigenAttribute result = null;
+                foreach (AmqpApigenAttribute candidate in attributes) {
+                    if (candidate.m_namespaceName == null && result == null) {
+                        result = candidate;
+                    }
+                    if (candidate.m_namespaceName == ApiNamespaceBase) {
+                        result = candidate;
+                    }
+                }
+                return result;
+            } else {
+                foreach (Attribute attribute in attributes) {
+                    return attribute;
+                }
+                return null;
+            }
+        }
+
+        public void EmitModelImplementation() {
+            EmitLine("  public class Model: RabbitMQ.Client.Impl.ModelBase {");
+            EmitLine("    public Model(RabbitMQ.Client.Impl.ISession session): base(session) {}");
+            ArrayList asynchronousHandlers = new ArrayList();
+            foreach (Type t in modelTypes) {
+                foreach (MethodInfo method in t.GetMethods()) {
+                    if (method.DeclaringType.Namespace != null &&
+                        method.DeclaringType.Namespace.StartsWith("RabbitMQ.Client")) {
+                        if (method.Name.StartsWith("Handle") ||
+                            (Attribute(method, typeof(AmqpAsynchronousHandlerAttribute)) != null))
+                        {
+                            asynchronousHandlers.Add(method);
+                        } else {
+                            MaybeEmitModelMethod(method);
+                        }
+                    }
+                }
+            }
+            EmitAsynchronousHandlers(asynchronousHandlers);
+            EmitLine("  }");
+        }
+
+	public void EmitContentHeaderFactory(MethodInfo method) {
+	    AmqpContentHeaderFactoryAttribute factoryAnnotation = (AmqpContentHeaderFactoryAttribute)
+		Attribute(method, typeof(AmqpContentHeaderFactoryAttribute));
+	    string contentClass = factoryAnnotation.m_contentClass;
+	    EmitModelMethodPreamble(method);
+	    EmitLine("    {");
+	    EmitLine("      return new "+MangleClass(contentClass)+"Properties();");
+	    EmitLine("    }");
+	}
+
+        public void MaybeEmitModelMethod(MethodInfo method) {
+            if (method.IsSpecialName) {
+                // It's some kind of event- or property-related method.
+                // It shouldn't be autogenerated.
+            } else if (Attribute(method, typeof(AmqpMethodDoNotImplementAttribute)) != null) {
+                // Skip this method, by request (AmqpMethodDoNotImplement)
+	    } else if (Attribute(method, typeof(AmqpContentHeaderFactoryAttribute)) != null) {
+		EmitContentHeaderFactory(method);
+            } else if (Attribute(method, typeof(AmqpUnsupportedAttribute)) != null) {
+                EmitModelMethodPreamble(method);
+                EmitLine("    {");
+                EmitLine("      throw new UnsupportedMethodException(\""+method.Name+"\");");
+                EmitLine("    }");
+            } else {
+                EmitModelMethod(method);
+            }
+        }
+
+        public string SanitisedFullName(Type t) {
+            if (t == typeof(void)) {
+                return "void";
+            } else {
+                return t.FullName;
+            }
+        }
+
+        public void EmitModelMethodPreamble(MethodInfo method) {
+            Emit("    public override "+SanitisedFullName(method.ReturnType)+" "+method.Name);
+            ParameterInfo[] parameters = method.GetParameters();
+            int remaining = parameters.Length;
+            if (remaining == 0) {
+                EmitLine("()");
+            } else {
+                EmitLine("(");
+                foreach (ParameterInfo pi in parameters) {
+                    Emit("      "+SanitisedFullName(pi.ParameterType)+" @"+pi.Name);
+                    remaining--;
+                    if (remaining > 0) {
+                        EmitLine(",");
+                    } else {
+                        EmitLine(")");
+                    }
+                }
+            }
+        }
+
+        public void LookupAmqpMethod(MethodInfo method,
+                                     string methodName,
+                                     out AmqpClass amqpClass,
+                                     out AmqpMethod amqpMethod)
+        {
+            amqpClass = null;
+            amqpMethod = null;
+
+            // First, try autodetecting the class/method via the
+            // IModel method name.
+
+            foreach (AmqpClass c in classes) {
+                foreach (AmqpMethod m in c.Methods) {
+                    if (methodName.Equals(MangleMethodClass(c,m))) {
+                        amqpClass = c;
+                        amqpMethod = m;
+                        goto stopSearching; // wheee
+                    }
+                }
+            }
+            stopSearching:
+
+            // If an explicit mapping was provided as an attribute,
+            // then use that instead, whether the autodetect worked or
+            // not.
+
+            {
+                AmqpMethodMappingAttribute methodMapping =
+                    Attribute(method, typeof(AmqpMethodMappingAttribute)) as AmqpMethodMappingAttribute;
+                if (methodMapping != null) {
+                    amqpClass = null;
+                    foreach (AmqpClass c in classes) {
+                        if (c.Name == methodMapping.m_className) {
+                            amqpClass = c;
+                            break;
+                        }
+                    }
+                    amqpMethod = amqpClass.MethodNamed(methodMapping.m_methodName);
+                }
+            }
+
+            // At this point, if can't find either the class or the
+            // method, we can't proceed. Complain.
+
+            if (amqpClass == null || amqpMethod == null) {
+                throw new Exception("Could not find AMQP class or method for IModel method " + method.Name);
+            }
+        }
+
+        public void EmitModelMethod(MethodInfo method) {
+            ParameterInfo[] parameters = method.GetParameters();
+
+            AmqpClass amqpClass = null;
+            AmqpMethod amqpMethod = null;
+            LookupAmqpMethod(method, method.Name, out amqpClass, out amqpMethod);
+
+            string requestImplClass = MangleMethodClass(amqpClass, amqpMethod);
+
+            // At this point, we know which request method to
+            // send. Now compute whether it's an RPC or not.
+
+            AmqpMethod amqpReplyMethod = null;
+            AmqpMethodMappingAttribute replyMapping =
+                Attribute(method.ReturnTypeCustomAttributes, typeof(AmqpMethodMappingAttribute))
+                as AmqpMethodMappingAttribute;
+            if (Attribute(method, typeof(AmqpForceOneWayAttribute)) == null &&
+                (amqpMethod.IsSimpleRpcRequest || replyMapping != null))
+            {
+                // We're not forcing oneway, and either are a simple
+                // RPC request, or have an explicit replyMapping
+                amqpReplyMethod = amqpClass.MethodNamed(replyMapping == null
+                                                        ? (string) amqpMethod.ResponseMethods[0]
+                                                        : replyMapping.m_methodName);
+                if (amqpReplyMethod == null) {
+                    throw new Exception("Could not find AMQP reply method for IModel method " + method.Name);
+                }
+            }
+
+            // If amqpReplyMethod is null at this point, it's a
+            // one-way operation, and no continuation needs to be
+            // consed up. Otherwise, we should expect a reply of kind
+            // identified by amqpReplyMethod - unless there's a nowait
+            // parameter thrown into the equation!
+            //
+            // Examine the parameters to discover which might be
+            // nowait, content header or content body.
+
+            ParameterInfo nowaitParameter = null;
+            string nowaitExpression = "null";
+            ParameterInfo contentHeaderParameter = null;
+            ParameterInfo contentBodyParameter = null;
+            foreach (ParameterInfo pi in parameters) {
+                AmqpNowaitArgumentAttribute nwAttr =
+                    Attribute(pi, typeof(AmqpNowaitArgumentAttribute)) as AmqpNowaitArgumentAttribute;
+                if (nwAttr != null) {
+                    nowaitParameter = pi;
+                    if (nwAttr.m_replacementExpression != null) {
+                        nowaitExpression = nwAttr.m_replacementExpression;
+                    }
+                }
+                if (Attribute(pi, typeof(AmqpContentHeaderMappingAttribute)) != null) {
+                    contentHeaderParameter = pi;
+                }
+                if (Attribute(pi, typeof(AmqpContentBodyMappingAttribute)) != null) {
+                    contentBodyParameter = pi;
+                }
+            }
+
+            // Compute expression text for the content header and body.
+
+            string contentHeaderExpr =
+                contentHeaderParameter == null
+                ? "null"
+                : " ("+MangleClass(amqpClass.Name)+"Properties) "+contentHeaderParameter.Name;
+            string contentBodyExpr =
+                contentBodyParameter == null ? "null" : contentBodyParameter.Name;
+
+            // Emit the method declaration and preamble.
+
+            EmitModelMethodPreamble(method);
+            EmitLine("    {");
+
+            // Emit the code to build the request.
+
+            EmitLine("      "+requestImplClass+" __req = new "+requestImplClass+"();");
+            foreach (ParameterInfo pi in parameters) {
+                if (pi != contentHeaderParameter &&
+                    pi != contentBodyParameter)
+                {
+                    if (Attribute(pi, typeof(AmqpUnsupportedAttribute)) != null) {
+                        EmitLine("      if (@"+pi.Name+" != null) {");
+                        EmitLine("        throw new UnsupportedMethodFieldException(\""+method.Name+"\",\""+pi.Name+"\");");
+                        EmitLine("      }");
+                    } else {
+                        AmqpFieldMappingAttribute fieldMapping =
+                            Attribute(pi, typeof(AmqpFieldMappingAttribute)) as AmqpFieldMappingAttribute;
+                        if (fieldMapping != null) {
+                            EmitLine("      __req.m_"+fieldMapping.m_fieldName+" = @" + pi.Name + ";");
+                        } else {
+                            EmitLine("      __req.m_"+pi.Name+" = @" + pi.Name + ";");
+                        }
+                    }
+                }
+            }
+
+            // If we have a nowait parameter, sometimes that can turn
+            // a ModelRpc call into a ModelSend call.
+
+            if (nowaitParameter != null) {
+                EmitLine("      if ("+nowaitParameter.Name+") {");
+                EmitLine("        ModelSend(__req,"+contentHeaderExpr+","+contentBodyExpr+");");
+                if (method.ReturnType != typeof(void)) {
+                    EmitLine("        return "+nowaitExpression+";");
+                }
+                EmitLine("      }");
+            }
+
+            // At this point, perform either a ModelRpc or a
+            // ModelSend.
+
+            if (amqpReplyMethod == null) {
+                EmitLine("      ModelSend(__req,"+contentHeaderExpr+","+contentBodyExpr+");");
+            } else {
+                string replyImplClass = MangleMethodClass(amqpClass, amqpReplyMethod);
+
+                EmitLine("      RabbitMQ.Client.Impl.MethodBase __repBase = ModelRpc(__req,"+contentHeaderExpr+","+contentBodyExpr+");");
+                EmitLine("      "+replyImplClass+" __rep = __repBase as "+replyImplClass+";");
+                EmitLine("      if (__rep == null) throw new UnexpectedMethodException(__repBase);");
+
+                if (method.ReturnType == typeof(void)) {
+                    // No need to further examine the reply.
+                } else {
+                    // At this point, we have the reply method. Extract values from it.
+
+                    AmqpFieldMappingAttribute returnMapping =
+                        Attribute(method.ReturnTypeCustomAttributes, typeof(AmqpFieldMappingAttribute))
+                        as AmqpFieldMappingAttribute;
+                    if (returnMapping == null) {
+                        // No field mapping --> it's assumed to be a struct to fill in.
+                        EmitLine("      "+method.ReturnType+" __result = new "+method.ReturnType+"();");
+                        foreach (FieldInfo fi in method.ReturnType.GetFields()) {
+                            AmqpFieldMappingAttribute returnFieldMapping =
+                                Attribute(fi, typeof(AmqpFieldMappingAttribute)) as AmqpFieldMappingAttribute;
+                            if (returnFieldMapping != null) {
+                                EmitLine("      __result."+fi.Name+" = __rep.m_"+returnFieldMapping.m_fieldName+";");
+                            } else {
+                                EmitLine("      __result."+fi.Name+" = __rep.m_"+fi.Name+";");
+                            }
+                        }
+                        EmitLine("      return __result;");
+                    } else {
+                        // Field mapping --> return just the field we're interested in.
+                        EmitLine("      return __rep.m_"+returnMapping.m_fieldName+";");
+                    }
+                }
+            }
+
+            // All the IO and result-extraction has been done. Emit
+            // the method postamble.
+
+            EmitLine("    }");
+        }
+
+        public void EmitAsynchronousHandlers(ArrayList asynchronousHandlers) {
+            EmitLine("    public override bool DispatchAsynchronous(RabbitMQ.Client.Impl.Command cmd) {");
+            EmitLine("      RabbitMQ.Client.Impl.MethodBase __method = (RabbitMQ.Client.Impl.MethodBase) cmd.Method;");
+            EmitLine("      switch ((__method.ProtocolClassId << 16) | __method.ProtocolMethodId) {");
+            foreach (MethodInfo method in asynchronousHandlers) {
+                string methodName = method.Name;
+                if (methodName.StartsWith("Handle")) {
+                    methodName = methodName.Substring(6);
+                }
+
+                AmqpClass amqpClass = null;
+                AmqpMethod amqpMethod = null;
+                LookupAmqpMethod(method, methodName, out amqpClass, out amqpMethod);
+
+                string implClass = MangleMethodClass(amqpClass, amqpMethod);
+
+                EmitLine("        case "+((amqpClass.Index << 16) | amqpMethod.Index)+": {");
+                ParameterInfo[] parameters = method.GetParameters();
+                if (parameters.Length > 0) {
+		    EmitLine("          "+implClass+" __impl = ("+implClass+") __method;");
+                    EmitLine("          "+method.Name+"(");
+                    int remaining = parameters.Length;
+                    foreach (ParameterInfo pi in parameters) {
+                        if (Attribute(pi, typeof(AmqpContentHeaderMappingAttribute)) != null) {
+                            Emit("            ("+pi.ParameterType+") cmd.Header");
+                        } else if (Attribute(pi, typeof(AmqpContentBodyMappingAttribute)) != null) {
+                            Emit("            cmd.Body");
+                        } else {
+                            AmqpFieldMappingAttribute fieldMapping =
+                                Attribute(pi, typeof(AmqpFieldMappingAttribute)) as AmqpFieldMappingAttribute;
+                            Emit("            __impl.m_"+(fieldMapping == null
+                                                          ? pi.Name
+                                                          : fieldMapping.m_fieldName));
+                        }
+                        remaining--;
+                        if (remaining > 0) {
+                            EmitLine(",");
+                        }
+                    }
+                    EmitLine(");");
+                } else {
+                    EmitLine("          "+method.Name+"();");
+                }
+                EmitLine("          return true;");
+                EmitLine("        }");
+            }
+            EmitLine("        default: return false;");
+            EmitLine("      }");
+            EmitLine("    }");
+        }
+    }
+}
diff --git a/mcs/class/RabbitMQ.Client/src/apigen/Makefile b/mcs/class/RabbitMQ.Client/src/apigen/Makefile
new file mode 100644
index 0000000..9d5e49a
--- /dev/null
+++ b/mcs/class/RabbitMQ.Client/src/apigen/Makefile
@@ -0,0 +1,12 @@
+thisdir := class/RabbitMQ.Client/src/apigen
+SUBDIRS =
+
+include ../../../../build/rules.make
+
+PROGRAM = RabbitMQ.Client.Apigen.exe
+
+LOCAL_MCS_FLAGS = /r:System.dll     \
+                  /r:System.Xml.dll \
+                  /main:RabbitMQ.Client.Apigen.Apigen
+
+include ../../../../build/executable.make
diff --git a/mcs/class/RabbitMQ.Client/src/apigen/RabbitMQ.Client.Apigen.exe.sources b/mcs/class/RabbitMQ.Client/src/apigen/RabbitMQ.Client.Apigen.exe.sources
new file mode 100644
index 0000000..a71720a
--- /dev/null
+++ b/mcs/class/RabbitMQ.Client/src/apigen/RabbitMQ.Client.Apigen.exe.sources
@@ -0,0 +1,20 @@
+Apigen.cs
+AmqpClass.cs
+AmqpEntity.cs
+AmqpField.cs
+AmqpMethod.cs
+../client/api/IModel.cs
+../client/api/IContentHeader.cs
+../client/api/IBasicProperties.cs
+../client/api/IFileProperties.cs
+../client/api/IStreamProperties.cs
+../client/api/AmqpTimestamp.cs
+../client/api/IBasicConsumer.cs
+../client/api/ShutdownEventArgs.cs
+../client/api/ShutdownInitiator.cs
+../client/api/PublicationAddress.cs
+../client/events/BasicReturnEventArgs.cs
+../client/events/BasicReturnEventHandler.cs
+../client/events/CallbackExceptionEventArgs.cs
+../client/events/CallbackExceptionEventHandler.cs
+../client/events/ModelShutdownEventHandler.cs
diff --git a/mcs/class/System.Configuration/System.Configuration/ChangeLog b/mcs/class/System.Configuration/System.Configuration/ChangeLog
index 1a3fb0d..b40e181 100644
--- a/mcs/class/System.Configuration/System.Configuration/ChangeLog
+++ b/mcs/class/System.Configuration/System.Configuration/ChangeLog
@@ -1,3 +1,16 @@
+2010-01-09  Marek Habersack  <mhabersack at novell.com>
+
+	* ConfigurationLocation.cs: trailing / characters are removed from
+	the path.
+
+	* Configuration.cs: instances created for locations inherit
+	ConfigPath from their containing document.
+	Host.GetConfigPathFromLocationSubPath must be called with current
+	instance's configPath, not LocationConfigPath.
+	Locations are sought for using paths relative to the current
+	instance's configPath, not to the root path.
+	All of the above is part of fix for bug #568441
+
 2009-10-23 Gonzalo Paniagua Javier <gonzalo at novell.com>
 
 	* Configuration.cs: make this work again with bundled configuration
diff --git a/mcs/class/System.Configuration/System.Configuration/Configuration.cs b/mcs/class/System.Configuration/System.Configuration/Configuration.cs
index f50ad8b..95d2d60 100644
--- a/mcs/class/System.Configuration/System.Configuration/Configuration.cs
+++ b/mcs/class/System.Configuration/System.Configuration/Configuration.cs
@@ -63,13 +63,14 @@ namespace System.Configuration {
 			this.system = parent.system;
 			this.rootGroup = parent.rootGroup;
 			this.locationSubPath = locationSubPath;
+			this.configPath = parent.ConfigPath;
 		}
 		
 		internal Configuration (InternalConfigurationSystem system, string locationSubPath)
 		{
 			hasFile = true;
 			this.system = system;
-			
+
 			system.InitForConfiguration (ref locationSubPath, out configPath, out locationConfigPath);
 			
 			Configuration parent = null;
@@ -85,18 +86,21 @@ namespace System.Configuration {
 		
 		internal Configuration FindLocationConfiguration (string relativePath, Configuration defaultConfiguration)
 		{
-			ConfigurationLocation loc = Locations.Find (relativePath);
-			
 			Configuration parentConfig = defaultConfiguration;
-			
-			if (LocationConfigPath != null) {
+
+			if (!String.IsNullOrEmpty (LocationConfigPath)) {
 				Configuration parentFile = GetParentWithFile ();
 				if (parentFile != null) {
-					string parentRelativePath = system.Host.GetConfigPathFromLocationSubPath (LocationConfigPath, relativePath);
+					string parentRelativePath = system.Host.GetConfigPathFromLocationSubPath (configPath, relativePath);
 					parentConfig = parentFile.FindLocationConfiguration (parentRelativePath, defaultConfiguration);
 				}
 			}
 
+			string relConfigPath = configPath.Substring (1) + "/";
+			if (relativePath.StartsWith (relConfigPath, StringComparison.Ordinal))
+				relativePath = relativePath.Substring (relConfigPath.Length);
+
+			ConfigurationLocation loc = Locations.Find (relativePath);
 			if (loc == null)
 				return parentConfig;
 			
diff --git a/mcs/class/System.Configuration/System.Configuration/ConfigurationLocation.cs b/mcs/class/System.Configuration/System.Configuration/ConfigurationLocation.cs
index b151da2..f796569 100644
--- a/mcs/class/System.Configuration/System.Configuration/ConfigurationLocation.cs
+++ b/mcs/class/System.Configuration/System.Configuration/ConfigurationLocation.cs
@@ -36,6 +36,8 @@ namespace System.Configuration {
 
 	public class ConfigurationLocation
 	{
+		static readonly char[] pathTrimChars = { '/' };
+		
 		string path;
 		Configuration configuration;
 		Configuration parent;
@@ -57,6 +59,8 @@ namespace System.Configuration {
 					case '\\':
 						throw new ConfigurationErrorsException ("<location> path attribute must be a relative virtual path.  It cannot start with any of ' ' '.' '/' or '\\'.");
 				}
+
+				path = path.TrimEnd (pathTrimChars);
 			}
 			
 			this.path = path;
diff --git a/mcs/class/System.Data/ChangeLog b/mcs/class/System.Data/ChangeLog
index e77e5e1..c3165df 100644
--- a/mcs/class/System.Data/ChangeLog
+++ b/mcs/class/System.Data/ChangeLog
@@ -1,3 +1,7 @@
+2009-12-03  Jonathan Pobst  <monkey at jpobst.com>
+
+	* System.Data.dll.sources: Add SortOrder.cs.
+
 2009-01-03  Gert Driesen  <drieseng at users.sourceforge.net>
 
 	* System.Data_test.dll.sources: Added SqlCommandBuilderTest.cs
diff --git a/mcs/class/System.Data/System.Data.SqlClient/ChangeLog b/mcs/class/System.Data/System.Data.SqlClient/ChangeLog
index ad41acc..3af5b4e 100644
--- a/mcs/class/System.Data/System.Data.SqlClient/ChangeLog
+++ b/mcs/class/System.Data/System.Data.SqlClient/ChangeLog
@@ -1,3 +1,7 @@
+2009-12-03  Jonathan Pobst  <monkey at jpobst.com>
+
+	* SortOrder.cs: Add enum.
+
 2009-10-15  Veerapuram Varadhan  <vvaradhan at novell.com>
 
 	** As part of fix for #385028
diff --git a/mcs/class/System.Data/System.Data.SqlClient/SortOrder.cs b/mcs/class/System.Data/System.Data.SqlClient/SortOrder.cs
new file mode 100644
index 0000000..cb83ced
--- /dev/null
+++ b/mcs/class/System.Data/System.Data.SqlClient/SortOrder.cs
@@ -0,0 +1,40 @@
+//
+// System.Data.SqlClient.SortOrder.cs
+//
+// Author:
+//   Jonathan Pobst (monkey at jpobst.com)
+//
+//
+// Copyright (C) 2009 Novell, Inc (http://www.novell.com)
+//
+// 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.
+//
+
+using System;
+
+namespace System.Data.SqlClient
+{
+	public enum SortOrder
+	{
+		Ascending = 0,
+		Descending = 1,
+		Unspecified = -1		
+	}
+}
diff --git a/mcs/class/System.Data/System.Data.dll.sources b/mcs/class/System.Data/System.Data.dll.sources
index c324152..91f25b4 100644
--- a/mcs/class/System.Data/System.Data.dll.sources
+++ b/mcs/class/System.Data/System.Data.dll.sources
@@ -274,6 +274,7 @@ Microsoft.SqlServer.Server/TriggerAction.cs
 Microsoft.SqlServer.Server/SqlTriggerContext.cs
 Microsoft.SqlServer.Server/SqlProcedureAttribute.cs
 Microsoft.SqlServer.Server/SqlTriggerAttribute.cs
+System.Data.SqlClient/SortOrder.cs
 System.Data.SqlClient/SqlNotificationType.cs
 System.Data.SqlClient/SqlNotificationInfo.cs
 System.Data.SqlClient/SqlNotificationSource.cs
diff --git a/mcs/class/System.Transactions/System.Transactions/ChangeLog b/mcs/class/System.Transactions/System.Transactions/ChangeLog
index 40130e5..c1744ae 100644
--- a/mcs/class/System.Transactions/System.Transactions/ChangeLog
+++ b/mcs/class/System.Transactions/System.Transactions/ChangeLog
@@ -1,3 +1,7 @@
+2010-01-03  Zoltan Varga  <vargaz at gmail.com>
+
+	* TransactionAbortedException.cs: Make the default ctor public. Fixes #567872.
+
 2009-02-02  Raja R Harinath  <harinath at hurrynot.org>
 
 	Fix #463999
diff --git a/mcs/class/System.Transactions/System.Transactions/TransactionAbortedException.cs b/mcs/class/System.Transactions/System.Transactions/TransactionAbortedException.cs
index 1188b24..feca6fe 100644
--- a/mcs/class/System.Transactions/System.Transactions/TransactionAbortedException.cs
+++ b/mcs/class/System.Transactions/System.Transactions/TransactionAbortedException.cs
@@ -15,7 +15,7 @@ namespace System.Transactions
 	[Serializable]
 	public class TransactionAbortedException : TransactionException
 	{
-		protected TransactionAbortedException ()
+		public TransactionAbortedException ()
 		{
 		}
 
diff --git a/mcs/class/System.Web.Extensions/ChangeLog b/mcs/class/System.Web.Extensions/ChangeLog
index d34566f..aa4987b 100644
--- a/mcs/class/System.Web.Extensions/ChangeLog
+++ b/mcs/class/System.Web.Extensions/ChangeLog
@@ -1,3 +1,8 @@
+2009-12-15  Marek Habersack  <mhabersack at novell.com>
+
+	* System.Web.Extensions_test.dll.sources: added
+	System.Web.UI.WebControls/ListViewPagedDataSourceTest.cs
+
 2008-11-28  Atsushi Enomoto  <atsushi at ximian.com>
 
 	* Makefile : add NUNIT_RESOURCE_FILES to dist.
diff --git a/mcs/class/System.Web.Extensions/System.Web.Extensions_test.dll.sources b/mcs/class/System.Web.Extensions/System.Web.Extensions_test.dll.sources
index 0f39630..837296d 100644
--- a/mcs/class/System.Web.Extensions/System.Web.Extensions_test.dll.sources
+++ b/mcs/class/System.Web.Extensions/System.Web.Extensions_test.dll.sources
@@ -42,4 +42,5 @@ System.Web.UI/ScriptControlDescriptorTest.cs
 System.Web.UI/UpdateProgressTest.cs
 System.Web.UI.WebControls/EventRecorder.cs
 System.Web.UI.WebControls/ListViewTest.cs
+System.Web.UI.WebControls/ListViewPagedDataSourceTest.cs
 System.Web.UI.WebControls/DataPagerFieldCollectionTest.cs
diff --git a/mcs/class/System.Web.Extensions/System.Web.Script.Services/ChangeLog b/mcs/class/System.Web.Extensions/System.Web.Script.Services/ChangeLog
index ad93c06..e1b5ca4 100644
--- a/mcs/class/System.Web.Extensions/System.Web.Script.Services/ChangeLog
+++ b/mcs/class/System.Web.Extensions/System.Web.Script.Services/ChangeLog
@@ -1,3 +1,14 @@
+2010-01-18  Marek Habersack  <mhabersack at novell.com>
+
+	* LogicalTypeInfo.cs: partial revert of r146546. The 'd' wrapper
+	(and thus the JsonResult class) is needed after all. Fixes bug
+	#571365
+
+2009-11-19  Marek Habersack  <mhabersack at novell.com>
+
+	* LogicalTypeInfo.cs: removed the JsonResult class - it has no use
+	and it can break applications (e.g. Umbraco)
+
 2009-08-15  Marek Habersack  <mhabersack at novell.com>
 
 	* LogicalTypeInfo.cs: make sure JavaScriptSerializer instance used
diff --git a/mcs/class/System.Web.Extensions/System.Web.UI.WebControls/ChangeLog b/mcs/class/System.Web.Extensions/System.Web.UI.WebControls/ChangeLog
index 64b327f..aa596b9 100644
--- a/mcs/class/System.Web.Extensions/System.Web.UI.WebControls/ChangeLog
+++ b/mcs/class/System.Web.Extensions/System.Web.UI.WebControls/ChangeLog
@@ -1,3 +1,23 @@
+2009-12-15  Marek Habersack  <mhabersack at novell.com>
+
+	* NextPreviousPagerField.cs: HandleEvent doesn't call
+	DataPager.SetPageProperties with negative start index. Also, if
+	_totalRowCount is <= 0, new start index is not calculated using
+	it. Fixes bug #545417
+
+	* ListViewPagedDataSource.cs: when server paging is on, data items
+	are counted from index 0 instead of from the value stored in
+	StartRowIndex. Fixes bug #545417
+
+	* ListView.cs: CreateChildControls doesn't create empty data item
+	if called with fake data.
+	When a view reports it can page data, ListViewPagedDataSource
+	passed to item creation methods has AllowServerPaging set to
+	true. Fixes bug #545417
+	When CreateChildControls is called with fake data,
+	ListViewPagedDataSource has its TotalRowCount property set to the
+	actual total row count, not zero. Fixes bug #545417
+
 2009-09-08  Marek Habersack  <mhabersack at novell.com>
 
 	* ListView.cs: if total row count has been retrieved from the
diff --git a/mcs/class/System.Web.Extensions/System.Web.UI.WebControls/ListView.cs b/mcs/class/System.Web.Extensions/System.Web.UI.WebControls/ListView.cs
index af08e38..6d61d1a 100644
--- a/mcs/class/System.Web.Extensions/System.Web.UI.WebControls/ListView.cs
+++ b/mcs/class/System.Web.Extensions/System.Web.UI.WebControls/ListView.cs
@@ -102,7 +102,8 @@ namespace System.Web.UI.WebControls
 		IOrderedDictionary _currentDeletingItemValues;
 		
 		int _firstIdAfterLayoutTemplate = 0;
-		
+
+		bool usingFakeData;
 #region Events
 		// Event keys
 		static readonly object ItemCancellingEvent = new object ();
@@ -777,7 +778,12 @@ namespace System.Web.UI.WebControls
 					// OnTotalRowCountAvailable is called now - so that any
 					// pagers can create child controls.
 					object[] data = new object [c];
-					CreateChildControls (data, false);
+					usingFakeData = true;
+					try {
+						CreateChildControls (data, false);
+					} finally {
+						usingFakeData = false;
+					}
 				}
 			}
 			
@@ -803,6 +809,7 @@ namespace System.Web.UI.WebControls
 
 				int totalRowCount = 0;
 				if (haveDataToPage && view.CanPage) {
+					pagedDataSource.AllowServerPaging = true;
 					if (view.CanRetrieveTotalRowCount)
 						totalRowCount = SelectArguments.TotalRowCount;
 					else {
@@ -819,14 +826,14 @@ namespace System.Web.UI.WebControls
 			} else {
 				if (!(dataSource is ICollection))
 					throw new InvalidOperationException ("dataSource does not implement the ICollection interface and dataBinding is false.");
-				pagedDataSource.TotalRowCount = 0;
+				pagedDataSource.TotalRowCount = _totalRowCount;
 				_totalRowCount = -1;
 			}
 
 			pagedDataSource.StartRowIndex = StartRowIndex;
 			pagedDataSource.MaximumRows = MaximumRows;
 			pagedDataSource.DataSource = dataSource;
-			
+
 			bool emptySet = false;
 			if (dataSource != null) {
 				if (GroupItemCount <= 1 && GroupTemplate == null)
@@ -850,7 +857,7 @@ namespace System.Web.UI.WebControls
 			} else
 				emptySet = true;
 
-			if (emptySet) {
+			if (!usingFakeData && emptySet) {
 				Controls.Clear ();
 				CreateEmptyDataItem ();
 			}
diff --git a/mcs/class/System.Web.Extensions/System.Web.UI.WebControls/ListViewPagedDataSource.cs b/mcs/class/System.Web.Extensions/System.Web.UI.WebControls/ListViewPagedDataSource.cs
index 0dfbe96..8d323e5 100644
--- a/mcs/class/System.Web.Extensions/System.Web.UI.WebControls/ListViewPagedDataSource.cs
+++ b/mcs/class/System.Web.Extensions/System.Web.UI.WebControls/ListViewPagedDataSource.cs
@@ -139,11 +139,11 @@ namespace System.Web.UI.WebControls
 
 			IList list = ds as IList;
 			if (list != null)
-				return new ListEnumerator (list, StartRowIndex, Count);
+				return new ListEnumerator (list, AllowServerPaging ? 0 : StartRowIndex, Count);
 
 			ICollection collection = ds as ICollection;
 			if (collection != null)
-				return new CollectionEnumerator (collection, StartRowIndex, Count);
+				return new CollectionEnumerator (collection, AllowServerPaging ? 0 : StartRowIndex, Count);
 			
 			return ds.GetEnumerator ();
 		}
@@ -180,8 +180,7 @@ namespace System.Web.UI.WebControls
 					return maxRows;
 
 				// LAMESPEC: MSDN says that DataSourceCount should be subtracted
-				// from StartRowIndex, but that would result in a negative number,
-				// which is not what we want.
+				// from StartRowIndex
 				return DataSourceCount - StartRowIndex;
 			}
 		}
diff --git a/mcs/class/System.Web.Extensions/System.Web.UI.WebControls/NextPreviousPagerField.cs b/mcs/class/System.Web.Extensions/System.Web.UI.WebControls/NextPreviousPagerField.cs
index e4b4e9c..477cd4c 100644
--- a/mcs/class/System.Web.Extensions/System.Web.UI.WebControls/NextPreviousPagerField.cs
+++ b/mcs/class/System.Web.Extensions/System.Web.UI.WebControls/NextPreviousPagerField.cs
@@ -277,7 +277,7 @@ namespace System.Web.UI.WebControls
 					newStartIndex = _totalRowCount - lastPageMod;
 			} else if (String.Compare (commandName, DataControlCommands.NextPageCommandArgument, StringComparison.OrdinalIgnoreCase) == 0) {
 				newStartIndex = _startRowIndex + pageSize;
-				if (newStartIndex > _totalRowCount)
+				if (_totalRowCount >= 0 && newStartIndex > _totalRowCount)
 					newStartIndex = _totalRowCount - pageSize;
 			} else if (String.Compare (commandName, DataControlCommands.PreviousPageCommandArgument, StringComparison.OrdinalIgnoreCase) == 0) {
 				newStartIndex = _startRowIndex - pageSize;
@@ -285,7 +285,7 @@ namespace System.Web.UI.WebControls
 					newStartIndex = 0;
 			}
 
-			if (newStartIndex != -1)
+			if (newStartIndex >= 0)
 				DataPager.SetPageProperties (newStartIndex, pageSize, true);
 		}
 
diff --git a/mcs/class/System.Web.Extensions/System.Web.UI/ChangeLog b/mcs/class/System.Web.Extensions/System.Web.UI/ChangeLog
index 3ae2cb6..d28831b 100644
--- a/mcs/class/System.Web.Extensions/System.Web.UI/ChangeLog
+++ b/mcs/class/System.Web.Extensions/System.Web.UI/ChangeLog
@@ -1,3 +1,16 @@
+2010-02-02  Marek Habersack  <mhabersack at novell.com>
+
+	* ScriptManager.cs: adjusted script rendering to match .NET
+	formatting.
+
+	* ScriptComponentDescriptor.cs: GetScript adds ID value (if
+	present) to the set of properties.
+	GetScript rewritten to use StringBuilder.
+
+	* ScriptBehaviorDescriptor.cs: GetScript adds Name, if present and
+	set by the user, to the descriptor's set of properties. The name
+	must be rendered to the client.
+
 2009-09-28  Marek Habersack  <mhabersack at novell.com>
 
 	* UpdatePanel.cs: RenderChildren stores the alternative writer in
diff --git a/mcs/class/System.Web.Extensions/System.Web.UI/ScriptBehaviorDescriptor.cs b/mcs/class/System.Web.Extensions/System.Web.UI/ScriptBehaviorDescriptor.cs
index 3150652..1ebe3da 100644
--- a/mcs/class/System.Web.Extensions/System.Web.UI/ScriptBehaviorDescriptor.cs
+++ b/mcs/class/System.Web.Extensions/System.Web.UI/ScriptBehaviorDescriptor.cs
@@ -36,7 +36,8 @@ namespace System.Web.UI
 	public class ScriptBehaviorDescriptor : ScriptComponentDescriptor
 	{
 		string _name;
-
+		bool _nameSet;
+		
 		public ScriptBehaviorDescriptor (string type, string elementID)
 			: base (type) {
 			if (String.IsNullOrEmpty (elementID))
@@ -67,6 +68,7 @@ namespace System.Web.UI
 			}
 			set {
 				_name = value;
+				_nameSet = true;
 			}
 		}
 
@@ -78,7 +80,11 @@ namespace System.Web.UI
 			return Type;
 		}
 
-		protected internal override string GetScript () {
+		protected internal override string GetScript ()
+		{
+			if (_nameSet && !String.IsNullOrEmpty (_name))
+				AddProperty ("name", _name);
+			
 			return base.GetScript ();
 		}
 	}
diff --git a/mcs/class/System.Web.Extensions/System.Web.UI/ScriptComponentDescriptor.cs b/mcs/class/System.Web.Extensions/System.Web.UI/ScriptComponentDescriptor.cs
index c6939d9..c46c1aa 100644
--- a/mcs/class/System.Web.Extensions/System.Web.UI/ScriptComponentDescriptor.cs
+++ b/mcs/class/System.Web.Extensions/System.Web.UI/ScriptComponentDescriptor.cs
@@ -134,7 +134,7 @@ namespace System.Web.UI
 
 			AddEntry (ref _properties, String.Format ("\"{0}\"", name), script);
 		}
-
+		
 		void AddEntry (ref IDictionary<string, string> dictionary, string key, string value) {
 			if (dictionary == null)
 				dictionary = new SortedDictionary<string, string> ();
@@ -144,43 +144,62 @@ namespace System.Web.UI
 				dictionary [key] = value;
 		}
 
-		protected internal override string GetScript () {
-			if (String.IsNullOrEmpty (FormID)) {
-				if (String.IsNullOrEmpty (ElementIDInternal))
-					return String.Format ("$create({0}, {1}, {2}, {3});", Type, GetSerializedProperties (), GetSerializedEvents (), GetSerializedReferences ());
-				else
-					return String.Format ("$create({0}, {1}, {2}, {3}, $get(\"{4}\"));", Type, GetSerializedProperties (), GetSerializedEvents (), GetSerializedReferences (), ElementIDInternal);
-			}
-			else {
-				if (String.IsNullOrEmpty (ElementIDInternal))
-					return String.Format ("$create($get(\"{0}\"), {1}, {2}, {3}, {4});", FormID, Type, GetSerializedProperties (), GetSerializedEvents (), GetSerializedReferences ());
-				else
-					return String.Format ("$create($get(\"{0}\"), {1}, {2}, {3}, {4}, $get(\"{5}\"));", FormID, Type, GetSerializedProperties (), GetSerializedEvents (), GetSerializedReferences (), ElementIDInternal);
-			}
+		protected internal override string GetScript ()
+		{
+			string id = ID;
+			if (id != String.Empty)
+				AddProperty ("id", id);
+			
+			bool haveFormID = String.IsNullOrEmpty (FormID) == false;
+			bool haveElementID = String.IsNullOrEmpty (ElementIDInternal) == false;
+			var sb = new StringBuilder ("$create(");
+
+			if (haveFormID)
+				sb.Append ("$get(\"");
+			sb.Append (Type);
+			if (haveFormID)
+				sb.Append ("\")");
+
+			WriteSerializedProperties (sb);
+			WriteSerializedEvents (sb);
+			WriteSerializedReferences (sb);
+
+			if (haveElementID)
+				sb.AppendFormat (", $get(\"{0}\")", ElementIDInternal);
+
+			sb.Append (");");
+
+			return sb.ToString ();
 		}
 
-		internal static string SerializeDictionary (IDictionary<string, string> dictionary) {
+		internal static string SerializeDictionary (IDictionary<string, string> dictionary)
+		{
 			if (dictionary == null || dictionary.Count == 0)
 				return "null";
 			StringBuilder sb = new StringBuilder ("{");
-			foreach (string key in dictionary.Keys) {
+			foreach (string key in dictionary.Keys)
 				sb.AppendFormat ("{0}:{1},", key, dictionary [key]);
-			}
 			sb.Length--;
 			sb.Append ("}");
 			return sb.ToString ();
 		}
 
-		string GetSerializedProperties () {
-			return SerializeDictionary (_properties);
+		void WriteSerializedProperties (StringBuilder sb)
+		{
+			sb.Append (", ");
+			sb.Append (SerializeDictionary (_properties));
 		}
 
-		string GetSerializedEvents () {
-			return SerializeDictionary (_events);
+		void WriteSerializedEvents (StringBuilder sb)
+		{
+			sb.Append (", ");
+			sb.Append (SerializeDictionary (_events));
 		}
 
-		string GetSerializedReferences () {
-			return SerializeDictionary (_references);
+		void WriteSerializedReferences (StringBuilder sb)
+		{
+			sb.Append (", ");
+			sb.Append (SerializeDictionary (_references));
 		}
 	}
 }
\ No newline at end of file
diff --git a/mcs/class/System.Web.Extensions/System.Web.UI/ScriptManager.cs b/mcs/class/System.Web.Extensions/System.Web.UI/ScriptManager.cs
index 25f99ee..4f216ec 100644
--- a/mcs/class/System.Web.Extensions/System.Web.UI/ScriptManager.cs
+++ b/mcs/class/System.Web.Extensions/System.Web.UI/ScriptManager.cs
@@ -1023,7 +1023,8 @@ namespace System.Web.UI
 			RegisterScriptDescriptors ((Control) scriptControl, scriptControl.GetScriptDescriptors ());
 		}
 
-		void RegisterScriptDescriptors (Control control, IEnumerable<ScriptDescriptor> scriptDescriptors) {
+		void RegisterScriptDescriptors (Control control, IEnumerable<ScriptDescriptor> scriptDescriptors)
+		{
 			if (scriptDescriptors == null)
 				return;
 
@@ -1035,6 +1036,7 @@ namespace System.Web.UI
 				}
 				else
 					sb.AppendLine ("Sys.Application.add_init(function() {");
+				sb.Append ("\t");
 				sb.AppendLine (scriptDescriptor.GetScript ());
 				sb.AppendLine ("});");
 			}
diff --git a/mcs/class/System.Web.Extensions/Test/System.Web.UI.WebControls/DataPagerFieldCollectionTest.cs b/mcs/class/System.Web.Extensions/Test/System.Web.UI.WebControls/DataPagerFieldCollectionTest.cs
index 136e412..4178285 100644
--- a/mcs/class/System.Web.Extensions/Test/System.Web.UI.WebControls/DataPagerFieldCollectionTest.cs
+++ b/mcs/class/System.Web.Extensions/Test/System.Web.UI.WebControls/DataPagerFieldCollectionTest.cs
@@ -37,7 +37,7 @@ using System.Web.UI.WebControls;
 
 using NUnit.Framework;
 
-namespace Tests.System.Web.UI.WebControls
+namespace MonoTests.System.Web.UI.WebControls
 {
 	class DataPagerFieldCollectionPoker : DataPagerFieldCollection
 	{
diff --git a/mcs/class/System.Web.Extensions/Test/System.Web.UI.WebControls/EventRecorder.cs b/mcs/class/System.Web.Extensions/Test/System.Web.UI.WebControls/EventRecorder.cs
index 47985d8..481a626 100644
--- a/mcs/class/System.Web.Extensions/Test/System.Web.UI.WebControls/EventRecorder.cs
+++ b/mcs/class/System.Web.Extensions/Test/System.Web.UI.WebControls/EventRecorder.cs
@@ -33,7 +33,7 @@ using System.Collections.Generic;
 using System.Diagnostics;
 using System.Reflection;
 
-namespace Tests.System.Web.UI.WebControls
+namespace MonoTests.System.Web.UI.WebControls
 {
 	[Serializable]
 	public sealed class EventRecorder : List <string>
diff --git a/mcs/class/System.Web.Extensions/Test/System.Web.UI.WebControls/ListViewPagedDataSourceTest.cs b/mcs/class/System.Web.Extensions/Test/System.Web.UI.WebControls/ListViewPagedDataSourceTest.cs
new file mode 100644
index 0000000..1fed013
--- /dev/null
+++ b/mcs/class/System.Web.Extensions/Test/System.Web.UI.WebControls/ListViewPagedDataSourceTest.cs
@@ -0,0 +1,232 @@
+//
+// System.Web.UI.WebControls.ListView
+//
+// Authors:
+//   Marek Habersack (mhabersack at novell.com)
+//
+// (C) 2009 Novell, Inc
+//
+
+//
+// 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.
+//
+#if NET_3_5
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Text;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+using NUnit.Framework;
+using MonoTests.SystemWeb.Framework;
+using MonoTests.stand_alone.WebHarness;
+
+namespace MonoTests.System.Web.UI.WebControls
+{
+	[TestFixture]
+	public class ListViewPagedDataSourceTest
+	{
+		string EnumerableToString (IEnumerable data)
+		{
+			var sb = new StringBuilder ();
+
+			foreach (object d in data)
+				sb.Append (d.ToString ());
+
+			return sb.ToString ();
+		}
+		
+		List<string> GetData (int count)
+		{
+			var ret = new List<string> ();
+
+			for (int i = 0; i < count; i++)
+				ret.Add (i.ToString ());
+
+			return ret;
+		}
+
+		ListViewPagedDataSource GetDataSource (List<string> ds, int startRowIndex, int maximumRows, int totalRowCount, bool allowServerPaging)
+		{
+			var ret = new ListViewPagedDataSource ();
+
+			ret.DataSource = ds;
+			ret.StartRowIndex = startRowIndex;
+			ret.MaximumRows = maximumRows;
+			ret.TotalRowCount = totalRowCount;
+			ret.AllowServerPaging = allowServerPaging;
+
+			return ret;
+		}
+
+		[Test]
+		public void Counts ()
+		{
+			List<string> l = GetData (10);
+			ListViewPagedDataSource pds = GetDataSource (l, 0, 10, 25, false);
+
+			Assert.AreEqual (10, pds.Count, "#A1-1");
+			Assert.AreEqual (10, pds.DataSourceCount, "#A1-2");
+
+			pds = GetDataSource (l, 0, 10, 25, true);
+			Assert.AreEqual (10, pds.Count, "#A2-1");
+			Assert.AreEqual (25, pds.DataSourceCount, "#A2-2");
+
+			pds = GetDataSource (l, 10, 10, 25, false);
+			Assert.AreEqual (0, pds.Count, "#A3-1");
+			Assert.AreEqual (10, pds.DataSourceCount, "#A3-2");
+
+			pds = GetDataSource (l, 10, 10, 25, true);
+			Assert.AreEqual (10, pds.Count, "#A4-1");
+			Assert.AreEqual (25, pds.DataSourceCount, "#A4-2");
+
+			pds = GetDataSource (l, 15, 10, 25, false);
+			Assert.AreEqual (-5, pds.Count, "#A5-1");
+			Assert.AreEqual (10, pds.DataSourceCount, "#A5-2");
+
+			pds = GetDataSource (l, 15, 10, 25, true);
+			Assert.AreEqual (10, pds.Count, "#A6-1");
+			Assert.AreEqual (25, pds.DataSourceCount, "#A6-2");
+
+			pds = GetDataSource (l, 20, 10, 25, false);
+			Assert.AreEqual (-10, pds.Count, "#A7-1");
+			Assert.AreEqual (10, pds.DataSourceCount, "#A7-2");
+
+			pds = GetDataSource (l, 20, 10, 25, true);
+			Assert.AreEqual (5, pds.Count, "#A8-1");
+			Assert.AreEqual (25, pds.DataSourceCount, "#A8-2");
+
+			pds = GetDataSource (l, 25, 10, 25, false);
+			Assert.AreEqual (-15, pds.Count, "#A9-1");
+			Assert.AreEqual (10, pds.DataSourceCount, "#A9-2");
+
+			pds = GetDataSource (l, 25, 10, 25, true);
+			Assert.AreEqual (0, pds.Count, "#A10-1");
+			Assert.AreEqual (25, pds.DataSourceCount, "#A10-2");
+
+			pds = GetDataSource (l, 30, 10, 25, false);
+			Assert.AreEqual (-20, pds.Count, "#A11-1");
+			Assert.AreEqual (10, pds.DataSourceCount, "#A11-2");
+
+			pds = GetDataSource (l, 30, 10, 25, true);
+			Assert.AreEqual (-5, pds.Count, "#A12-1");
+			Assert.AreEqual (25, pds.DataSourceCount, "#A12-2");
+
+			l = GetData (11);
+			pds = GetDataSource (l, 0, 11, 25, false);
+
+			Assert.AreEqual (11, pds.Count, "#B1-1");
+			Assert.AreEqual (11, pds.DataSourceCount, "#B1-2");
+
+			pds = GetDataSource (l, 0, 11, 25, true);
+			Assert.AreEqual (11, pds.Count, "#B2-1");
+			Assert.AreEqual (25, pds.DataSourceCount, "#B2-2");
+
+			pds = GetDataSource (l, 10, 11, 25, false);
+			Assert.AreEqual (1, pds.Count, "#B3-1");
+			Assert.AreEqual (11, pds.DataSourceCount, "#B3-2");
+
+			pds = GetDataSource (l, 10, 11, 25, true);
+			Assert.AreEqual (11, pds.Count, "#B4-1");
+			Assert.AreEqual (25, pds.DataSourceCount, "#B4-2");
+
+			pds = GetDataSource (l, 15, 11, 25, false);
+			Assert.AreEqual (-4, pds.Count, "#B5-1");
+			Assert.AreEqual (11, pds.DataSourceCount, "#B5-2");
+
+			pds = GetDataSource (l, 15, 11, 25, true);
+			Assert.AreEqual (10, pds.Count, "#B6-1");
+			Assert.AreEqual (25, pds.DataSourceCount, "#B6-2");
+
+			pds = GetDataSource (l, 20, 11, 25, false);
+			Assert.AreEqual (-9, pds.Count, "#B7-1");
+			Assert.AreEqual (11, pds.DataSourceCount, "#B7-2");
+
+			pds = GetDataSource (l, 20, 11, 25, true);
+			Assert.AreEqual (5, pds.Count, "#B8-1");
+			Assert.AreEqual (25, pds.DataSourceCount, "#B8-2");
+
+			pds = GetDataSource (l, 25, 11, 25, false);
+			Assert.AreEqual (-14, pds.Count, "#B9-1");
+			Assert.AreEqual (11, pds.DataSourceCount, "#B9-2");
+
+			pds = GetDataSource (l, 25, 11, 25, true);
+			Assert.AreEqual (0, pds.Count, "#B10-1");
+			Assert.AreEqual (25, pds.DataSourceCount, "#B10-2");
+
+			pds = GetDataSource (l, 30, 11, 25, false);
+			Assert.AreEqual (-19, pds.Count, "#B11-1");
+			Assert.AreEqual (11, pds.DataSourceCount, "#B11-2");
+
+			pds = GetDataSource (l, 30, 11, 25, true);
+			Assert.AreEqual (-5, pds.Count, "#B12-1");
+			Assert.AreEqual (25, pds.DataSourceCount, "#B12-2");
+		}
+
+		[Test]
+		public void Enumerator ()
+		{
+			List<string> l = GetData (10);
+			ListViewPagedDataSource pds = GetDataSource (l, 0, 10, 25, false);
+			Assert.AreEqual ("0123456789", EnumerableToString (pds), "#A1");
+
+			pds = GetDataSource (l, 5, 10, 25, false);
+			Assert.AreEqual ("56789", EnumerableToString (pds), "#A2");
+
+			pds = GetDataSource (l, 9, 10, 25, false);
+			Assert.AreEqual ("9", EnumerableToString (pds), "#A3");
+
+			pds = GetDataSource (l, 10, 10, 25, false);
+			Assert.AreEqual (String.Empty, EnumerableToString (pds), "#A4");
+
+			pds = GetDataSource (l, 20, 10, 25, false);
+			Assert.AreEqual (String.Empty, EnumerableToString (pds), "#A5");
+
+			pds = GetDataSource (l, 25, 10, 25, false);
+			Assert.AreEqual (String.Empty, EnumerableToString (pds), "#A6");
+
+			pds = GetDataSource (l, 30, 10, 25, false);
+			Assert.AreEqual (String.Empty, EnumerableToString (pds), "#A7");
+
+			pds = GetDataSource (l, 0, 10, 25, true);
+			Assert.AreEqual ("0123456789", EnumerableToString (pds), "#B1");
+
+			pds = GetDataSource (l, 5, 10, 25, true);
+			Assert.AreEqual ("0123456789", EnumerableToString (pds), "#B2");
+
+			pds = GetDataSource (l, 9, 10, 25, true);
+			Assert.AreEqual ("0123456789", EnumerableToString (pds), "#B3");
+
+			pds = GetDataSource (l, 10, 10, 25, true);
+			Assert.AreEqual ("0123456789", EnumerableToString (pds), "#B4");
+
+			pds = GetDataSource (l, 20, 10, 25, true);
+			Assert.AreEqual ("01234", EnumerableToString (pds), "#B5");
+
+			pds = GetDataSource (l, 25, 10, 25, true);
+			Assert.AreEqual (String.Empty, EnumerableToString (pds), "#B6");
+
+			pds = GetDataSource (l, 30, 10, 25, true);
+			Assert.AreEqual (String.Empty, EnumerableToString (pds), "#B7");
+		}
+	}
+}
+#endif
\ No newline at end of file
diff --git a/mcs/class/System.Web.Extensions/Test/System.Web.UI.WebControls/ListViewTest.cs b/mcs/class/System.Web.Extensions/Test/System.Web.UI.WebControls/ListViewTest.cs
index 3323c32..e829607 100644
--- a/mcs/class/System.Web.Extensions/Test/System.Web.UI.WebControls/ListViewTest.cs
+++ b/mcs/class/System.Web.Extensions/Test/System.Web.UI.WebControls/ListViewTest.cs
@@ -42,7 +42,7 @@ using NUnit.Framework;
 using MonoTests.SystemWeb.Framework;
 using MonoTests.stand_alone.WebHarness;
 
-namespace Tests.System.Web.UI.WebControls
+namespace MonoTests.System.Web.UI.WebControls
 {
 	public sealed class ListViewPoker : ListView
 	{
diff --git a/mcs/class/System.Web.Extensions/Test/System.Web.UI/ScriptBehaviorDescriptorTest.cs b/mcs/class/System.Web.Extensions/Test/System.Web.UI/ScriptBehaviorDescriptorTest.cs
index f7e6ab9..69d065e 100644
--- a/mcs/class/System.Web.Extensions/Test/System.Web.UI/ScriptBehaviorDescriptorTest.cs
+++ b/mcs/class/System.Web.Extensions/Test/System.Web.UI/ScriptBehaviorDescriptorTest.cs
@@ -48,7 +48,8 @@ namespace Tests.System.Web.UI
 		}
 
 		[Test]
-		public void ScriptBehaviorDescriptor_Defaults () {
+		public void ScriptBehaviorDescriptor_Defaults ()
+		{
 			PokerScriptBehaviorDescriptor scd = new PokerScriptBehaviorDescriptor ("My.Type", "Element1");
 
 			Assert.AreEqual ("My.Type", scd.Type, "Type");
@@ -58,7 +59,15 @@ namespace Tests.System.Web.UI
 			Assert.AreEqual ("Element1", scd.ElementID, "ElementID");
 
 			string script = scd.DoGetScript ();
-			Assert.AreEqual ("$create(My.Type, null, null, null, $get(\"Element1\"));", script);
+			Assert.AreEqual ("$create(My.Type, null, null, null, $get(\"Element1\"));", script, "#A1");
+
+			scd.ID = "SomeID";
+			script = scd.DoGetScript ();
+			Assert.AreEqual ("$create(My.Type, {\"id\":\"SomeID\"}, null, null, $get(\"Element1\"));", script, "#A2");
+
+			scd.Name = "SomeName";
+			script = scd.DoGetScript ();
+			Assert.AreEqual ("$create(My.Type, {\"id\":\"SomeID\",\"name\":\"SomeName\"}, null, null, $get(\"Element1\"));", script, "#A3");
 		}
 
 		[Test]
diff --git a/mcs/class/System.Web.Extensions/Test/System.Web.UI/ScriptComponentDescriptorTest.cs b/mcs/class/System.Web.Extensions/Test/System.Web.UI/ScriptComponentDescriptorTest.cs
index cd31612..cbf47d7 100644
--- a/mcs/class/System.Web.Extensions/Test/System.Web.UI/ScriptComponentDescriptorTest.cs
+++ b/mcs/class/System.Web.Extensions/Test/System.Web.UI/ScriptComponentDescriptorTest.cs
@@ -48,7 +48,8 @@ namespace Tests.System.Web.UI
 		}
 
 		[Test]
-		public void ScriptComponentDescriptor_Defaults () {
+		public void ScriptComponentDescriptor_Defaults ()
+		{
 			PokerScriptComponentDescriptor scd = new PokerScriptComponentDescriptor ("My.Type");
 
 			Assert.AreEqual ("My.Type", scd.Type, "Type");
@@ -56,7 +57,11 @@ namespace Tests.System.Web.UI
 			Assert.AreEqual (String.Empty, scd.ClientID, "ClientID");
 
 			string script = scd.DoGetScript ();
-			Assert.AreEqual ("$create(My.Type, null, null, null);", script);
+			Assert.AreEqual ("$create(My.Type, null, null, null);", script, "#A1");
+
+			scd.ID = "SomeID";
+			script = scd.DoGetScript ();
+			Assert.AreEqual ("$create(My.Type, {\"id\":\"SomeID\"}, null, null);", script, "#A2");
 		}
 
 		[Test]
diff --git a/mcs/class/System.Web.Extensions/Test/resources/ListViewTest.aspx b/mcs/class/System.Web.Extensions/Test/resources/ListViewTest.aspx
index ccce79e..004b104 100644
--- a/mcs/class/System.Web.Extensions/Test/resources/ListViewTest.aspx
+++ b/mcs/class/System.Web.Extensions/Test/resources/ListViewTest.aspx
@@ -1,5 +1,5 @@
 <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="MyPage.aspx.cs" Inherits="MyPage" %>
-<%@ Register Assembly="System.Web.Extensions_test_net_2_0" Namespace="Tests.System.Web.UI.WebControls" TagPrefix="t" %>
+<%@ Register Assembly="System.Web.Extensions_test_net_2_0" Namespace="MonoTests.System.Web.UI.WebControls" TagPrefix="t" %>
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 
 <html xmlns="http://www.w3.org/1999/xhtml">
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/ChangeLog b/mcs/class/System.Web.Routing/System.Web.Routing/ChangeLog
index f165cfe..15bf886 100644
--- a/mcs/class/System.Web.Routing/System.Web.Routing/ChangeLog
+++ b/mcs/class/System.Web.Routing/System.Web.Routing/ChangeLog
@@ -1,3 +1,9 @@
+2009-11-23  Marek Habersack  <mhabersack at novell.com>
+
+	* Route.cs: GetRouteData throws NotImplementedException only when
+	pathInfo for the current request is a non-empty string. Patch from
+	Tiaan <tagdev at gmail.com>, thanks!
+
 2009-11-09  Marek Habersack  <mhabersack at novell.com>
 
 	* RouteCollection.cs: GetVirtualPath doesn't append trailing slash
diff --git a/mcs/class/System.Web.Routing/System.Web.Routing/Route.cs b/mcs/class/System.Web.Routing/System.Web.Routing/Route.cs
index 960a8d2..36b716c 100644
--- a/mcs/class/System.Web.Routing/System.Web.Routing/Route.cs
+++ b/mcs/class/System.Web.Routing/System.Web.Routing/Route.cs
@@ -82,7 +82,7 @@ namespace System.Web.Routing
 			var path = httpContext.Request.AppRelativeCurrentExecutionFilePath;
 			var pathInfo = httpContext.Request.PathInfo;
 
-			if (pathInfo != String.Empty)
+			if (!String.IsNullOrEmpty (pathInfo))
 				throw new NotImplementedException ();
 
 			// probably code like this causes ArgumentOutOfRangeException under .NET.
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog b/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog
index 1d2b4de..db23253 100644
--- a/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/ChangeLog
@@ -1,3 +1,8 @@
+2010-02-15 Gonzalo Paniagua Javier <gonzalo at novell.com>
+
+	* SoapDocumentationHandler.cs: use IndexOf() instead of LastIndexOf()
+	when removing the querystring from the url.
+
 2009-07-23 Gonzalo Paniagua Javier <gonzalo at novell.com>
 
 	* LogicalMethodInfo.cs: add CacheDuration property.
diff --git a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapDocumentationHandler.cs b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapDocumentationHandler.cs
index 5be98fa..27610f4 100644
--- a/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapDocumentationHandler.cs
+++ b/mcs/class/System.Web.Services/System.Web.Services.Protocols/SoapDocumentationHandler.cs
@@ -59,7 +59,7 @@ namespace System.Web.Services.Protocols
 		public SoapDocumentationHandler (Type type, HttpContext context): base (type)
 		{
 			_url = context.Request.Url.ToString();
-			int i = _url.LastIndexOf ('?');
+			int i = _url.IndexOf ('?');
 			if (i != -1) _url = _url.Substring (0,i);
 			_typeStubInfo = (SoapTypeStubInfo) TypeStubManager.GetTypeStub (ServiceType, "Soap");
 			
diff --git a/mcs/class/System.Web/ChangeLog b/mcs/class/System.Web/ChangeLog
index 3656bb1..c7fd580 100644
--- a/mcs/class/System.Web/ChangeLog
+++ b/mcs/class/System.Web/ChangeLog
@@ -1,3 +1,38 @@
+2010-02-11  Marek Habersack  <mhabersack at novell.com>
+
+	* System.Web_test.dll.sources: added
+	mainsoft/NunitWeb/NunitWeb/TestRoleProvider.cs
+
+2010-01-19  Marek Habersack  <mhabersack at novell.com>
+
+	* Makefile (TEST_RESOURCE_FILES): added
+	Test/mainsoft/NunitWebResources/App_GlobalResources/Resource1.resx
+	and
+	Test/mainsoft/NunitWebResources/TagWithExpressionWithinAttribute.aspx
+
+2010-01-15  Marek Habersack  <mhabersack at novell.com>
+
+	* Makefile (TEST_RESOURCE_FILES): added
+	Test/mainsoft/NunitWebResources/ChangePasswordContainer_FindControl.aspx
+
+2009-12-18  Marek Habersack  <mhabersack at novell.com>
+
+	* System.Web_test.dll.sources: added
+	mainsoft/NunitWeb/NunitWeb/Tests/Author.cs
+	mainsoft/NunitWeb/NunitWeb/Tests/AuthorConverter.cs
+	mainsoft/NunitWeb/NunitWeb/Tests/Book.cs
+	mainsoft/NunitWeb/NunitWeb/Tests/BookType.cs
+
+	* Makefile (TEST_RESOURCE_FILES): added
+	Test/mainsoft/NunitWebResources/StateFormatter_CorrectConverter.aspx
+	Test/mainsoft/NunitWebResources/StateFormatter_CollectionConverter.aspx
+	Test/mainsoft/NunitWebResources/StateFormatter_CollectionConverter.aspx.cs
+
+2009-12-14  Marek Habersack  <mhabersack at novell.com>
+
+	* Makefile (TEST_RESOURCE_FILES): added
+	Test/mainsoft/NunitWebResources/NestedParserFileText.aspx
+
 2009-11-13  Marek Habersack  <mhabersack at novell.com>
 
 	* Makefile (TEST_RESOURCE_FILES): added
diff --git a/mcs/class/System.Web/Makefile b/mcs/class/System.Web/Makefile
index af8efb0..15fca78 100644
--- a/mcs/class/System.Web/Makefile
+++ b/mcs/class/System.Web/Makefile
@@ -16,6 +16,8 @@ WEBSERVICES_DEP := System.Web.Services.dll
 WEBSERVICES_DEP_FILE := $(wildcard ../lib/$(PROFILE)/$(WEBSERVICES_DEP))
 MONOWEB_DEP := Mono.Web.dll
 MONOWEB_DEP_FILE := $(wildcard ../lib/$(PROFILE)/$(MONOWEB_DEP))
+SYSTEMCORE_DEP := System.Core.dll
+SYSTEMCORE_DEP_FILE := $(wildcard ../lib/$(PROFILE)/$(SYSTEMCORE_DEP))
 CYCLIC_DEPS := $(WEBSERVICES_DEP) $(MONOWEB_DEP)
 CYCLIC_DEP_FILES := $(WEBSERVICES_DEP_FILE) $(MONOWEB_DEP_FILE)
 endif
@@ -92,6 +94,7 @@ TEST_RESOURCE_FILES = \
 	Test/mainsoft/NunitWeb/NunitWeb/Resources/test_map_09.sitemap \
 	Test/mainsoft/NunitWebResources/App_GlobalResources/Common.resx \
 	Test/mainsoft/NunitWebResources/App_GlobalResources/Common.fr-FR.resx \
+	Test/mainsoft/NunitWebResources/App_GlobalResources/Resource1.resx \
 	Test/mainsoft/NunitWebResources/menuclass.aspx \
 	Test/mainsoft/NunitWebResources/FormView.aspx \
 	Test/mainsoft/NunitWebResources/PostBackMenuTest.aspx \
@@ -185,7 +188,13 @@ TEST_RESOURCE_FILES = \
 	Test/mainsoft/NunitWebResources/TagsNestedInClientTag.aspx \
 	Test/mainsoft/NunitWebResources/GlobalResourcesLocalization.aspx \
 	Test/mainsoft/NunitWebResources/TableSections_Bug551666.aspx \
-	Test/mainsoft/NunitWebResources/TableSections_Bug551666.aspx.cs
+	Test/mainsoft/NunitWebResources/TableSections_Bug551666.aspx.cs \
+	Test/mainsoft/NunitWebResources/NestedParserFileText.aspx \
+	Test/mainsoft/NunitWebResources/StateFormatter_CorrectConverter.aspx \
+	Test/mainsoft/NunitWebResources/StateFormatter_CollectionConverter.aspx \
+	Test/mainsoft/NunitWebResources/StateFormatter_CollectionConverter.aspx.cs \
+	Test/mainsoft/NunitWebResources/ChangePasswordContainer_FindControl.aspx \
+	Test/mainsoft/NunitWebResources/TagWithExpressionWithinAttribute.aspx
 
 RESX_DIST =  resources/TranslationResources.resx
 ifeq (net_2_0, $(PROFILE))
@@ -244,6 +253,11 @@ LIB_MCS_FLAGS += -define:MONOWEB_DEP -r:$(MONOWEB_DEP)
 $(the_lib): $(MONOWEB_DEP_FILE)
 endif
 
+ifdef SYSTEMCORE_DEP_FILE
+LIB_MCS_FLAGS += -define:SYSTEMCORE_DEP -r:$(SYSTEMCORE_DEP)
+$(build_lib): $(SYSTEMCORE_DEP_FILE)
+endif
+
 ifdef DEBUG
 LIB_MCS_FLAGS += -define:DEBUG
 endif
diff --git a/mcs/class/System.Web/System.Web.Compilation/AppResourcesCompiler.cs b/mcs/class/System.Web/System.Web.Compilation/AppResourcesCompiler.cs
index 6c9743f..bec91c3 100644
--- a/mcs/class/System.Web/System.Web.Compilation/AppResourcesCompiler.cs
+++ b/mcs/class/System.Web/System.Web.Compilation/AppResourcesCompiler.cs
@@ -277,7 +277,7 @@ namespace System.Web.Compilation
 		{
 			this.isGlobal = true;
 			this.files = new AppResourceFilesCollection (context);
-			this.cultureFiles = new Dictionary <string, List <string>> ();
+			this.cultureFiles = new Dictionary <string, List <string>> (StringComparer.OrdinalIgnoreCase);
 		}
 
 		public AppResourcesCompiler (string virtualPath)
@@ -286,7 +286,7 @@ namespace System.Web.Compilation
 			this.virtualPath = virtualPath;
 			this.isGlobal = false;
 			this.files = new AppResourceFilesCollection (HttpContext.Current.Request.MapPath (virtualPath));
-			this.cultureFiles = new Dictionary <string, List <string>> ();
+			this.cultureFiles = new Dictionary <string, List <string>> (StringComparer.OrdinalIgnoreCase);
 		}
 
 		static Assembly LoadAssembly (string asmPath)
@@ -835,13 +835,13 @@ namespace System.Web.Compilation
 				throw new HttpException ("Failed to compile resource file", ex);
 			} finally {
 				if (reader != null)
-					reader.Close ();
-				else if (source != null)
-					source.Close ();
+					reader.Dispose ();
+				if (source != null)
+					source.Dispose ();
 				if (writer != null)
-					writer.Close ();
-				else if (destination != null)
-					destination.Close ();
+					writer.Dispose ();
+				if (destination != null)
+					destination.Dispose ();
 			}
 			
 			return resource;
diff --git a/mcs/class/System.Web/System.Web.Compilation/AspGenerator.cs b/mcs/class/System.Web/System.Web.Compilation/AspGenerator.cs
index cae0f60..079de78 100644
--- a/mcs/class/System.Web/System.Web.Compilation/AspGenerator.cs
+++ b/mcs/class/System.Web/System.Web.Compilation/AspGenerator.cs
@@ -216,7 +216,7 @@ namespace System.Web.Compilation
 		
 		internal static Regex DirectiveRegex = new Regex (@"<%\s*@(\s*(?<attrname>\w[\w:]*(?=\W))(\s*(?<equal>=)\s*""(?<attrval>[^""]*)""|\s*(?<equal>=)\s*'(?<attrval>[^']*)'|\s*(?<equal>=)\s*(?<attrval>[^\s%>]*)|(?<equal>)(?<attrval>\s*?)))*\s*?%>", RegexOptions.Compiled | RegexOptions.IgnoreCase);
 #endif
-		static readonly Regex runatServer = new Regex (@"<[\w:\.]+.*?runat=[""']?server[""']?.*?/?>",
+		static readonly Regex runatServer = new Regex (@"<[\w:\.]+.*?runat=[""']?server[""']?.*(?:/>|>)",
 							       RegexOptions.Compiled | RegexOptions.Singleline |
 							       RegexOptions.Multiline | RegexOptions.IgnoreCase |
 							       RegexOptions.CultureInvariant);
@@ -867,7 +867,9 @@ namespace System.Web.Compilation
 
 		void ParseAttributeTag (string code, ILocation location)
 		{
-			AspParser parser = new AspParser ("@@attribute_tag@@", new StringReader (code), location.BeginLine - 1, location as AspParser);
+			AspParser outerParser = location as AspParser;
+			int positionOffset = outerParser != null ? outerParser.BeginPosition : 0;
+			AspParser parser = new AspParser ("@@attribute_tag@@", new StringReader (code), location.BeginLine - 1, positionOffset, outerParser);
 			parser.Error += new ParseErrorHandler (ParseError);
 			parser.TagParsed += new TagParsedHandler (TagParsed);
 			parser.TextParsed += new TextParsedHandler (TextParsed);
@@ -1152,7 +1154,7 @@ namespace System.Web.Compilation
 				FlushText (true);
 				return;
 			}
-			
+
 			IList blocks = SplitTextIntoBlocks (text);
 			foreach (TextBlock block in blocks) {
 				switch (block.Type) {
@@ -1181,8 +1183,10 @@ namespace System.Web.Compilation
 							condEndif = true;
 						} else
 							condEndif = false;
-						
-						AspParser parser = new AspParser ("@@comment_code@@", new StringReader (blockToParse), location.BeginLine - 1, location as AspParser);
+
+						AspParser outerParser = location as AspParser;
+						int positionOffset = outerParser != null ? outerParser.BeginPosition : 0;
+						AspParser parser = new AspParser ("@@comment_code@@", new StringReader (blockToParse), location.BeginLine - 1, positionOffset, outerParser);
 						parser.Error += new ParseErrorHandler (ParseError);
 						parser.TagParsed += new TagParsedHandler (TagParsed);
 						parser.TextParsed += new TextParsedHandler (TextParsed);
@@ -1635,7 +1639,9 @@ namespace System.Web.Compilation
 			
 			void DoParse (string str)
 			{
-				AspParser parser = new AspParser ("@@code_render@@", new StringReader (str), location.BeginLine - 1, location as AspParser);
+				AspParser outerParser = location as AspParser;
+				int positionOffset = outerParser != null ? outerParser.BeginPosition : 0;
+				AspParser parser = new AspParser ("@@code_render@@", new StringReader (str), location.BeginLine - 1, positionOffset, outerParser);
 				parser.Error += new ParseErrorHandler (ParseError);
 				parser.TagParsed += new TagParsedHandler (TagParsed);
 				parser.TextParsed += new TextParsedHandler (TextParsed);
diff --git a/mcs/class/System.Web/System.Web.Compilation/AspParser.cs b/mcs/class/System.Web/System.Web.Compilation/AspParser.cs
index 472f100..7f0b1cd 100644
--- a/mcs/class/System.Web/System.Web.Compilation/AspParser.cs
+++ b/mcs/class/System.Web/System.Web.Compilation/AspParser.cs
@@ -67,6 +67,7 @@ namespace System.Web.Compilation
 		StringReader fileReader;
 		bool _internal;
 		int _internalLineOffset;
+		int _internalPositionOffset;
 		AspParser outer;
 		
 		EventHandlerList events = new EventHandlerList ();
@@ -102,11 +103,12 @@ namespace System.Web.Compilation
 			tokenizer = new AspTokenizer (this.fileReader);
 		}
 
-		public AspParser (string filename, TextReader input, int startLineOffset, AspParser outer)
+		public AspParser (string filename, TextReader input, int startLineOffset, int positionOffset, AspParser outer)
 			: this (filename, input)
 		{
 			this._internal = true;
 			this._internalLineOffset = startLineOffset;
+			this._internalPositionOffset = positionOffset;
 			this.outer = outer;
 		}
 		
@@ -121,10 +123,18 @@ namespace System.Web.Compilation
 		}
 #endif
 		
+		public int BeginPosition {
+			get { return beginPosition; }
+		}
+
+		public int EndPosition {
+			get { return endPosition; }
+		}
+
 		public int BeginLine {
 			get {
-				if (Internal)
-					return beginLine + InternalLineOffset;
+				if (_internal)
+					return beginLine + _internalLineOffset;
 
 				return beginLine;
 			}
@@ -136,8 +146,8 @@ namespace System.Web.Compilation
 
 		public int EndLine {
 			get {
-				if (Internal)
-					return endLine + InternalLineOffset;
+				if (_internal)
+					return endLine + _internalLineOffset;
 				return endLine;
 			}
 		}
@@ -146,22 +156,12 @@ namespace System.Web.Compilation
 			get { return endColumn; }
 		}
 
-		public bool Internal {
-			get { return _internal; }
-			set { _internal = value; }
-		}
-
-		public int InternalLineOffset {
-			get { return _internalLineOffset; }
-			set { _internalLineOffset = value; }
-		}
-		
 		public string FileText {
 			get {
 				string ret = null;
 				
-				if (Internal && outer != null)
-					ret = outer.FileText;
+				if (_internal && outer != null)
+				 	ret = outer.FileText;
 				
 				if (ret == null && fileText != null)
 					ret = fileText;
@@ -178,9 +178,9 @@ namespace System.Web.Compilation
 				string text = FileText;
 				int start, len;
 				
-				if (Internal && outer != null) {
-					start = beginPosition + InternalLineOffset;
-					len = (endPosition + InternalLineOffset) - start;
+				if (_internal && outer != null) {
+					start = beginPosition + _internalPositionOffset;
+					len = (endPosition + _internalPositionOffset) - start;
 				} else {
 					start = beginPosition;
 					len = endPosition - beginPosition;
@@ -195,7 +195,7 @@ namespace System.Web.Compilation
 
 		public string Filename {
 			get {
-				if (Internal && outer != null)
+				if (_internal && outer != null)
 					return outer.Filename;
 				
 				return filename;
diff --git a/mcs/class/System.Web/System.Web.Compilation/BuildManager.cs b/mcs/class/System.Web/System.Web.Compilation/BuildManager.cs
index 0e49194..574b879 100644
--- a/mcs/class/System.Web/System.Web.Compilation/BuildManager.cs
+++ b/mcs/class/System.Web/System.Web.Compilation/BuildManager.cs
@@ -488,14 +488,18 @@ namespace System.Web.Compilation {
 				if (reader.Name == "preserve" && reader.HasAttributes) {
 					reader.MoveToNextAttribute ();
 					string val = reader.Value;
+					// 1 -> app_code subfolder - add the assembly to CodeAssemblies
 					// 2 -> ashx
 					// 3 -> ascx, aspx
-					// 6 -> app_code - nothing to do here
+					// 6 -> app_code - add the assembly to CodeAssemblies
 					// 8 -> global.asax
 					// 9 -> App_GlobalResources - set the assembly for HttpContext
 					if (reader.Name == "resultType" && (val == "2" || val == "3" || val == "8"))
 						LoadPageData (reader, true);
-					else if (val == "9") {
+					else if (val == "1" || val == "6") {
+						PreCompilationData pd = LoadPageData (reader, false);
+						CodeAssemblies.Add (Assembly.Load (pd.AssemblyFileName));
+					} else if (val == "9") {
 						PreCompilationData pd = LoadPageData (reader, false);
 						HttpContext.AppGlobalResourcesAssembly = Assembly.Load (pd.AssemblyFileName);
 					}
diff --git a/mcs/class/System.Web/System.Web.Compilation/ChangeLog b/mcs/class/System.Web/System.Web.Compilation/ChangeLog
index 295b69d..766fc7e 100644
--- a/mcs/class/System.Web/System.Web.Compilation/ChangeLog
+++ b/mcs/class/System.Web/System.Web.Compilation/ChangeLog
@@ -1,3 +1,43 @@
+2010-02-11  Marek Habersack  <mhabersack at novell.com>
+
+	* AppResourcesCompiler.cs: explicitly dispose all the streams and
+	readers+writers in CompileResource.
+
+2010-02-04  Marek Habersack  <mhabersack at novell.com>
+
+	* PreservationFile.cs: updated the BuildResulTypeCode enum
+
+	* BuildManager.cs: LoadCompiled now adds all the assemblies built
+	from the App_Code directory to the BuildManager.CodeAssemblies
+	collection. Fixes bug #576810
+
+2010-01-19  Marek Habersack  <mhabersack at novell.com>
+
+	* AspGenerator.cs: modified the runatServer regex to correctly
+	match embedded server tags which end in a sequence like: "%>"/>
+	Fixes bug #568631
+
+2010-01-05  Marek Habersack  <mhabersack at novell.com>
+
+	* PageCompiler.cs: improved CreatePropertyAssign, it doesn't
+	always use CodePrimitiveExpression now.
+
+	* AppResourcesCompiler.cs: the culture files dictionary is
+	case-insensitive now. Otherwise culture files with culture name
+	cased differently will cause overlapped i/o on response files
+	while building satellite assemblies and, in effect, compilation
+	will fail.
+
+2009-12-14  Marek Habersack  <mhabersack at novell.com>
+
+	* AspParser.cs: PlainText should calculate the boundaries of
+	text using character offset, not line offset. Fixes bug #562286
+	InternalLineOffset and Internal properties need not exist.
+
+	* AspGenerator.cs: AspParser inner parser constructor takes 5
+	parameters now - accepts character offset of the current outer
+	parser's position.
+
 2009-11-10  Marek Habersack  <mhabersack at novell.com>
 
 	* BaseCompiler.cs: parser.Imports is a Dictionary <>/Hashtable
diff --git a/mcs/class/System.Web/System.Web.Compilation/PageCompiler.cs b/mcs/class/System.Web/System.Web.Compilation/PageCompiler.cs
index 2a4642e..5c3fdc2 100644
--- a/mcs/class/System.Web/System.Web.Compilation/PageCompiler.cs
+++ b/mcs/class/System.Web/System.Web.Compilation/PageCompiler.cs
@@ -205,13 +205,38 @@ namespace System.Web.Compilation
 			mainClass.Members.Add (method);
 		}
 
+		static CodeExpression GetExpressionForValueAndType (object value, Type valueType)
+		{
+			// Put short circuit types here
+			if (valueType == typeof (TimeSpan)) {
+				CodeMethodReferenceExpression mref = new CodeMethodReferenceExpression (
+					new CodeTypeReferenceExpression (typeof (TimeSpan)),
+					"Parse");
+
+				return new CodeMethodInvokeExpression (
+					mref,
+					new CodeExpression[] { new CodePrimitiveExpression (((TimeSpan) value).ToString ()) }
+				);
+			}
+
+			throw new HttpException (String.Format ("Unable to create assign expression for type '{0}'.", valueType));
+		}
+		
 		static CodeAssignStatement CreatePropertyAssign (CodeExpression expr, string name, object value)
 		{
-			CodePropertyReferenceExpression prop;
-			prop = new CodePropertyReferenceExpression (expr, name);
-			CodePrimitiveExpression prim;
-			prim = new CodePrimitiveExpression (value);
-			return new CodeAssignStatement (prop, prim);
+			CodeExpression rhs;
+			if (value == null || value is string)
+				rhs = new CodePrimitiveExpression (value);
+			else {
+				Type vt = value.GetType ();
+
+				if (vt.IsPrimitive)
+					rhs = new CodePrimitiveExpression (value);
+				else
+					rhs = GetExpressionForValueAndType (value, vt);
+			}
+			
+			return new CodeAssignStatement (new CodePropertyReferenceExpression (expr, name), rhs);
 		}
 
 		static CodeAssignStatement CreatePropertyAssign (string name, object value)
diff --git a/mcs/class/System.Web/System.Web.Compilation/PreservationFile.cs b/mcs/class/System.Web/System.Web.Compilation/PreservationFile.cs
index 611185c..3813439 100644
--- a/mcs/class/System.Web/System.Web.Compilation/PreservationFile.cs
+++ b/mcs/class/System.Web/System.Web.Compilation/PreservationFile.cs
@@ -38,7 +38,11 @@ namespace System.Web.Compilation
 	enum BuildResultTypeCode
 	{
 		Unknown = 0,
-		AspxPage = 3,
+		AppCodeSubFolder = 1,
+		Handler = 2,
+		PageOrControl = 3,
+		AppCode = 6,
+		Global = 8,
 		TopLevelAssembly = 9
 	}
 
diff --git a/mcs/class/System.Web/System.Web.Configuration_2.0/ChangeLog b/mcs/class/System.Web/System.Web.Configuration_2.0/ChangeLog
index 357af0c..72c3b0f 100644
--- a/mcs/class/System.Web/System.Web.Configuration_2.0/ChangeLog
+++ b/mcs/class/System.Web/System.Web.Configuration_2.0/ChangeLog
@@ -1,3 +1,31 @@
+2010-02-12  Marek Habersack  <mhabersack at novell.com>
+
+	* WebConfigurationHost.cs: implemented {Encrypt,Decrypt}Section
+
+2010-01-09  Marek Habersack  <mhabersack at novell.com>
+
+	* WebConfigurationManager.cs: GetSection properly handles looking
+	up and caching of <location> instances. Part of fix for bug
+	#568441
+
+	* WebConfigurationHost.cs: GetConfigPathFromLocationSubPath
+	calculatesthe path relative to the current config file path. Part
+	of fix for bug #568441
+
+2009-12-02  Marek Habersack  <mhabersack at novell.com>
+
+	* CompilationSection.cs: added new property - 
+	OptimizeCompilations (3.5+)
+
+2009-11-19  Marek Habersack  <mhabersack at novell.com>
+
+	* WebConfigurationHost.cs: IsDefinitionAllowed now normalizes the
+	passed configuration path, so that MachineToApplication sections
+
+	* WebConfigurationManager.cs: use an rw lock to protect access to
+	sectionCache. This is now necessary as the save handler clears the
+	cache.
+
 2009-11-10  Marek Habersack  <mhabersack at novell.com>
 
 	* WebConfigurationManager.cs: path passed to OpenWebConfiguration
diff --git a/mcs/class/System.Web/System.Web.Configuration_2.0/CompilationSection.cs b/mcs/class/System.Web/System.Web.Configuration_2.0/CompilationSection.cs
index f8dfce9..6c48ec9 100644
--- a/mcs/class/System.Web/System.Web.Configuration_2.0/CompilationSection.cs
+++ b/mcs/class/System.Web/System.Web.Configuration_2.0/CompilationSection.cs
@@ -55,6 +55,7 @@ namespace System.Web.Configuration
 		static ConfigurationProperty expressionBuildersProp;
 		static ConfigurationProperty urlLinePragmasProp;
 		static ConfigurationProperty codeSubDirectoriesProp;
+		static ConfigurationProperty optimizeCompilationsProp;
 		
 		static CompilationSection ()
 		{
@@ -91,6 +92,10 @@ namespace System.Web.Configuration
 			tempDirectoryProp = new ConfigurationProperty ("tempDirectory", typeof (string), "");
 			urlLinePragmasProp = new ConfigurationProperty ("urlLinePragmas", typeof (bool), false);
 
+			// This is a 4.0 property but it is also supported in 3.5 with
+			// this hotfix: http://support.microsoft.com/kb/961884
+			optimizeCompilationsProp = new ConfigurationProperty ("optimizeCompilations", typeof (bool), false);
+
 			properties = new ConfigurationPropertyCollection ();
 			properties.Add (assembliesProp);
 			properties.Add (assemblyPostProcessorTypeProp);
@@ -111,6 +116,7 @@ namespace System.Web.Configuration
 			properties.Add (strictProp);
 			properties.Add (tempDirectoryProp);
 			properties.Add (urlLinePragmasProp);
+			properties.Add (optimizeCompilationsProp);
 		}
 
 		public CompilationSection ()
@@ -211,12 +217,18 @@ namespace System.Web.Configuration
 			set { base [numRecompilesBeforeAppRestartProp] = value; }
 		}
 
+		[ConfigurationProperty ("optimizeCompilations", DefaultValue = "False")]
+		public bool OptimizeCompilations {
+			get { return (bool) base [optimizeCompilationsProp]; }
+			set { base [optimizeCompilationsProp] = value; }
+		}
+		
 		[ConfigurationProperty ("strict", DefaultValue = "False")]
 		public bool Strict {
 			get { return (bool) base [strictProp]; }
 			set { base [strictProp] = value; }
 		}
-
+		
 		[ConfigurationProperty ("tempDirectory", DefaultValue = "")]
 		public string TempDirectory {
 			get { return (string) base [tempDirectoryProp]; }
diff --git a/mcs/class/System.Web/System.Web.Configuration_2.0/WebConfigurationHost.cs b/mcs/class/System.Web/System.Web.Configuration_2.0/WebConfigurationHost.cs
index cf1c750..59cb111 100644
--- a/mcs/class/System.Web/System.Web.Configuration_2.0/WebConfigurationHost.cs
+++ b/mcs/class/System.Web/System.Web.Configuration_2.0/WebConfigurationHost.cs
@@ -3,6 +3,7 @@
 //
 // Authors:
 //  Lluis Sanchez Gual (lluis at novell.com)
+//  Marek Habersack <mhabersack at novell.com>
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the
@@ -23,7 +24,7 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+// Copyright (C) 2005-2009 Novell, Inc (http://www.novell.com)
 //
 
 #if NET_2_0
@@ -70,10 +71,12 @@ namespace System.Web.Configuration
 			return new HttpConfigurationContext(configPath);
 		}
 		
-		public virtual string DecryptSection (string encryptedXml, ProtectedConfigurationProvider protectionProvider,
-						      ProtectedConfigurationSection protectedSection)
+		public virtual string DecryptSection (string encryptedXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedSection)
 		{
-			throw new NotImplementedException ();
+			if (protectedSection == null)
+				throw new ArgumentNullException ("protectedSection");
+
+			return protectedSection.EncryptSection (encryptedXml, protectionProvider);
 		}
 		
 		public virtual void DeleteStream (string streamName)
@@ -81,15 +84,27 @@ namespace System.Web.Configuration
 			File.Delete (streamName);
 		}
 		
-		public virtual string EncryptSection (string encryptedXml, ProtectedConfigurationProvider protectionProvider,
-						      ProtectedConfigurationSection protectedSection)
+		public virtual string EncryptSection (string clearXml, ProtectedConfigurationProvider protectionProvider, ProtectedConfigurationSection protectedSection)
 		{
-			throw new NotImplementedException ();
+			if (protectedSection == null)
+				throw new ArgumentNullException ("protectedSection");
+
+			return protectedSection.EncryptSection (clearXml, protectionProvider);
 		}
 		
-		public virtual string GetConfigPathFromLocationSubPath (string configPath, string locatinSubPath)
+		public virtual string GetConfigPathFromLocationSubPath (string configPath, string locationSubPath)
 		{
-			return configPath + "/" + locatinSubPath;
+			if (!String.IsNullOrEmpty (locationSubPath) && !String.IsNullOrEmpty (configPath)) {
+				string relConfigPath = configPath.Length == 1 ? null : configPath.Substring (1) + "/";
+				if (relConfigPath != null && locationSubPath.StartsWith (relConfigPath, StringComparison.Ordinal))
+					locationSubPath = locationSubPath.Substring (relConfigPath.Length);
+			}
+			
+			string ret = configPath + "/" + locationSubPath;
+			if (!String.IsNullOrEmpty (ret) && ret [0] == '/')
+				return ret.Substring (1);
+			
+			return ret;
 		}
 		
 		public virtual Type GetConfigType (string typeName, bool throwOnError)
@@ -185,17 +200,14 @@ namespace System.Web.Configuration
 				locationConfigPath = null;
 			} else {
 				int i;
-				if (locationSubPath == null)
-				{
+				if (locationSubPath == null) {
 					configPath = fullPath;
 					if (configPath.Length > 1)
 						configPath = VirtualPathUtility.RemoveTrailingSlash (configPath);
-				}
-				else
+				} else
 					configPath = locationSubPath;
-
-				if (configPath == HttpRuntime.AppDomainAppVirtualPath
-				    || configPath == "/")
+				
+				if (configPath == HttpRuntime.AppDomainAppVirtualPath || configPath == "/")
 					i = -1;
 				else
 					i = configPath.LastIndexOf ("/");
@@ -362,11 +374,18 @@ namespace System.Web.Configuration
 				case ConfigurationAllowDefinition.MachineToApplication:
 					if (String.IsNullOrEmpty (configPath))
 						return true;
-					return (String.Compare (configPath, MachinePath, StringComparison.Ordinal) == 0) ||
-						(String.Compare (configPath, MachineWebPath, StringComparison.Ordinal) == 0) ||
-						(String.Compare (configPath, "/", StringComparison.Ordinal) == 0) ||
-						(String.Compare (configPath, "~", StringComparison.Ordinal) == 0) ||
-						(String.Compare (configPath, HttpRuntime.AppDomainAppVirtualPath) == 0);
+					string normalized;
+
+					if (VirtualPathUtility.IsRooted (configPath))
+						normalized = VirtualPathUtility.Normalize (configPath);
+					else
+						normalized = configPath;
+					
+					return (String.Compare (normalized, MachinePath, StringComparison.Ordinal) == 0) ||
+						(String.Compare (normalized, MachineWebPath, StringComparison.Ordinal) == 0) ||
+						(String.Compare (normalized, "/", StringComparison.Ordinal) == 0) ||
+						(String.Compare (normalized, "~", StringComparison.Ordinal) == 0) ||
+						(String.Compare (normalized, HttpRuntime.AppDomainAppVirtualPath) == 0);
 				default:
 					return true;
 			}
diff --git a/mcs/class/System.Web/System.Web.Configuration_2.0/WebConfigurationManager.cs b/mcs/class/System.Web/System.Web.Configuration_2.0/WebConfigurationManager.cs
index 3f67aab..802039b 100644
--- a/mcs/class/System.Web/System.Web.Configuration_2.0/WebConfigurationManager.cs
+++ b/mcs/class/System.Web/System.Web.Configuration_2.0/WebConfigurationManager.cs
@@ -4,6 +4,7 @@
 // Authors:
 // 	Lluis Sanchez Gual (lluis at novell.com)
 // 	Chris Toshok (toshok at ximian.com)
+//      Marek Habersack <mhabersack at novell.com>
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the
@@ -24,7 +25,7 @@
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
-// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
+// Copyright (C) 2005-2009 Novell, Inc (http://www.novell.com)
 //
 
 #if NET_2_0
@@ -50,9 +51,13 @@ namespace System.Web.Configuration {
 	public static class WebConfigurationManager
 	{
 		const int SAVE_LOCATIONS_CHECK_INTERVAL = 6000; // milliseconds
-		
+
+		static readonly char[] pathTrimChars = { '/' };
 		static readonly object suppressAppReloadLock = new object ();
 		static readonly object saveLocationsCacheLock = new object ();
+#if SYSTEMCORE_DEP
+		static readonly ReaderWriterLockSlim sectionCacheLock;
+#endif
 		
 #if !TARGET_J2EE
 		static IInternalConfigConfigurationFactory configFactory;
@@ -183,6 +188,10 @@ namespace System.Web.Configuration {
 				if (fi != null && fi.FieldType == Type.GetType ("System.Type"))
 					fi.SetValue (null, typeof (ApplicationSettingsConfigurationFileMap));
 			}
+
+#if SYSTEMCORE_DEP
+			sectionCacheLock = new ReaderWriterLockSlim ();
+#endif
 		}
 
 		static void ReenableWatcherOnConfigLocation (object state)
@@ -208,6 +217,20 @@ namespace System.Web.Configuration {
 		
 		static void ConfigurationSaveHandler (_Configuration sender, ConfigurationSaveEventArgs args)
 		{
+			bool locked = false;
+			try {
+#if SYSTEMCORE_DEP
+				sectionCacheLock.EnterWriteLock ();
+#endif
+				locked = true;
+				sectionCache.Clear ();
+			} finally {
+#if SYSTEMCORE_DEP
+				if (locked)
+					sectionCacheLock.ExitWriteLock ();
+#endif
+			}
+			
 			lock (suppressAppReloadLock) {
 				string rootConfigPath = WebConfigurationHost.GetWebConfigFileName (HttpRuntime.AppDomainAppPath);
 				if (String.Compare (args.StreamPath, rootConfigPath, StringComparison.OrdinalIgnoreCase) == 0) {
@@ -390,31 +413,97 @@ namespace System.Web.Configuration {
 			return GetSection (sectionName, path, HttpContext.Current);
 		}
 
+		static bool LookUpLocation (string relativePath, ref _Configuration defaultConfiguration)
+		{
+			if (String.IsNullOrEmpty (relativePath))
+				return false;
+
+			_Configuration cnew = defaultConfiguration.FindLocationConfiguration (relativePath, defaultConfiguration);
+			if (cnew == defaultConfiguration)
+				return false;
+
+			defaultConfiguration = cnew;
+			return true;
+		}
+
 		internal static object GetSection (string sectionName, string path, HttpContext context)
 		{
-			// FindWebConfig must not be used here with its result being passed to
-			// OpenWebConfiguration below. The reason is that if we have a request for
-			// ~/somepath/, but FindWebConfig returns ~/ and the ~/web.config contains
-			// <location path="somepath"> then OpenWebConfiguration will NOT return the
-			// contents of <location>, thus leading to bugs (ignored authorization
-			// section for instance)
-			string config_vdir = FindWebConfig (path);
-			if (String.IsNullOrEmpty (config_vdir))
-				config_vdir = "/";
-
-			int sectionCacheKey = GetSectionCacheKey (sectionName, config_vdir);
-			object cachedSection;
-			if (sectionCache.TryGetValue (sectionCacheKey, out cachedSection) && cachedSection != null)
-				return cachedSection;
-
-			HttpRequest req = context != null ? context.Request : null;
-			_Configuration c = OpenWebConfiguration (path, /* path */
-								 null, /* site */
-					 			 req != null ? VirtualPathUtility.GetDirectory (req.Path) : null, /* locationSubPath */
-								 null, /* server */
-								 null, /* userName */
-								 null, /* password */
-								 false  /* path from FindWebConfig */);
+			if (String.IsNullOrEmpty (sectionName))
+				return null;
+			
+			_Configuration c = OpenWebConfiguration (path, null, null, null, null, null, false);
+			string configPath = c.ConfigPath;
+			int baseCacheKey = 0;
+			int cacheKey;
+			bool pathPresent = !String.IsNullOrEmpty (path);
+			string locationPath = null;
+			bool locked = false;
+
+			if (pathPresent)
+				locationPath = "location_" + path;
+			
+			baseCacheKey = sectionName.GetHashCode ();
+			if (configPath != null)
+				baseCacheKey ^= configPath.GetHashCode ();
+			
+			try {
+#if SYSTEMCORE_DEP
+				sectionCacheLock.EnterReadLock ();
+#endif
+				locked = true;
+				
+				object o;
+				if (pathPresent) {
+					cacheKey = baseCacheKey ^ locationPath.GetHashCode ();
+					if (sectionCache.TryGetValue (cacheKey, out o))
+						return o;
+				
+					cacheKey = baseCacheKey ^ path.GetHashCode ();
+					if (sectionCache.TryGetValue (cacheKey, out o))
+						return o;
+				}
+				
+				if (sectionCache.TryGetValue (baseCacheKey, out o))
+					return o;
+			} finally {
+#if SYSTEMCORE_DEP
+				if (locked)
+					sectionCacheLock.ExitReadLock ();
+#endif
+			}
+
+			string cachePath = null;
+			if (pathPresent) {
+				string relPath;
+				
+				if (VirtualPathUtility.IsRooted (path)) {
+					if (path [0] == '~')
+						relPath = path.Substring (2);
+					else if (path [0] == '/')
+						relPath = path.Substring (1);
+					else
+						relPath = path;
+				} else
+					relPath = path;
+
+				_Configuration cnew;
+
+				HttpRequest req = context != null ? context.Request : null;
+				if (req != null) {
+					string vdir = VirtualPathUtility.GetDirectory (req.Path);
+					if (vdir != null) {
+						vdir = vdir.TrimEnd (pathTrimChars);
+						if (String.Compare (c.ConfigPath, vdir, StringComparison.Ordinal) != 0 && LookUpLocation (vdir.Trim (pathTrimChars), ref c))
+							cachePath = path;
+					}
+				}
+				
+				if (LookUpLocation (relPath, ref c))
+					cachePath = locationPath;
+				else
+					cachePath = path;
+			}
+
 			ConfigurationSection section = c.GetSection (sectionName);
 			if (section == null)
 				return null;
@@ -426,18 +515,20 @@ namespace System.Web.Configuration {
 				collection = new KeyValueMergedCollection (HttpContext.Current, (NameValueCollection) value);
 				value = collection;
 			}
-
-			AddSectionToCache (sectionCacheKey, value);
-			return value;
 #else
 #if MONOWEB_DEP
 			object value = SettingsMappingManager.MapSection (get_runtime_object.Invoke (section, new object [0]));
 #else
 			object value = null;
 #endif
-			AddSectionToCache (sectionCacheKey, value);
-			return value;
 #endif
+			if (cachePath != null)
+				cacheKey = baseCacheKey ^ cachePath.GetHashCode ();
+			else
+				cacheKey = baseCacheKey;
+			
+			AddSectionToCache (cacheKey, value);
+			return value;
 		}
 		
 		static string MapPath (HttpRequest req, string virtualPath)
@@ -572,24 +663,37 @@ namespace System.Web.Configuration {
 		static void AddSectionToCache (int key, object section)
 		{
 			object cachedSection;
-			if (sectionCache.TryGetValue (key, out cachedSection) && cachedSection != null)
-				return;
+			bool locked = false;
 
-			// Not sure if it wouldn't be better to just use a lock here
-			var tmpTable = new Dictionary <int, object> (sectionCache);
-			if (tmpTable.ContainsKey (key))
-				return;
-
-			tmpTable.Add (key, section);
-			sectionCache = tmpTable;
-		}
+			try {
+#if SYSTEMCORE_DEP
+				sectionCacheLock.EnterUpgradeableReadLock ();
+#endif
+				locked = true;
+					
+				if (sectionCache.TryGetValue (key, out cachedSection) && cachedSection != null)
+					return;
 
-		static int GetSectionCacheKey (string sectionName, string vdir)
-		{
-			return (sectionName != null ? sectionName.GetHashCode () : 0) ^
-				((vdir != null ? vdir.GetHashCode () : 0) + 37);
+				bool innerLocked = false;
+				try {
+#if SYSTEMCORE_DEP
+					sectionCacheLock.EnterWriteLock ();
+#endif
+					innerLocked = true;
+					sectionCache.Add (key, section);
+				} finally {
+#if SYSTEMCORE_DEP
+					if (innerLocked)
+						sectionCacheLock.ExitWriteLock ();
+#endif
+				}
+			} finally {
+#if SYSTEMCORE_DEP
+				if (locked)
+					sectionCacheLock.ExitUpgradeableReadLock ();
+#endif
+			}
 		}
-
 		
 #region stuff copied from WebConfigurationSettings
 #if TARGET_J2EE
diff --git a/mcs/class/System.Web/System.Web.Security/ChangeLog b/mcs/class/System.Web/System.Web.Security/ChangeLog
index 55dd18d..4cbe9f4 100644
--- a/mcs/class/System.Web/System.Web.Security/ChangeLog
+++ b/mcs/class/System.Web/System.Web.Security/ChangeLog
@@ -1,3 +1,9 @@
+2010-02-11  Marek Habersack  <mhabersack at novell.com>
+
+	* Roles.cs: IsUserInRole checks if username is null or empty
+	before attempting to use it. Patch from Tiaan Geldenhuys
+	<tagdev at gmail.com>. thanks!
+
 2009-07-09 Gonzalo Paniagua Javier <gonzalo at novell.com>
 
 	* SqliteMembershipProvider.cs:
diff --git a/mcs/class/System.Web/System.Web.Security/Roles.cs b/mcs/class/System.Web/System.Web.Security/Roles.cs
index 30add16..a2944cc 100644
--- a/mcs/class/System.Web/System.Web.Security/Roles.cs
+++ b/mcs/class/System.Web/System.Web.Security/Roles.cs
@@ -153,11 +153,13 @@ namespace System.Web.Security {
 		
 		public static bool IsUserInRole (string rolename)
 		{
-			return Provider.IsUserInRole (CurrentUser, rolename);
+			return IsUserInRole (CurrentUser, rolename);
 		}
 		
 		public static bool IsUserInRole (string username, string rolename)
 		{
+			if (String.IsNullOrEmpty (username))
+				return false;
 			return Provider.IsUserInRole (username, rolename);
 		}
 		
diff --git a/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog b/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
index 1a9e87f..16e1d42 100644
--- a/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
+++ b/mcs/class/System.Web/System.Web.UI.WebControls/ChangeLog
@@ -1,3 +1,15 @@
+2010-01-18  Marek Habersack  <mhabersack at novell.com>
+
+	* Parameter.cs: added missing 3.5 APIs - constructors taking
+	DbType as one of the parameters, ConvertDbTypeToTypeCode,
+	ConvertTypeCodeToDbType and GetDatabaseType. Fixes bug #567850
+
+2010-01-15  Marek Habersack  <mhabersack at novell.com>
+
+	* ChangePassword.cs: BaseChangePasswordContainer forwards
+	EnsureChildControls call to its owner, so that finding controls in
+	the container works correctly.
+
 2009-11-16  Marek Habersack  <mhabersack at novell.com>
 
 	* TreeNodeCollection.cs: whenever a node is added, let the owner
diff --git a/mcs/class/System.Web/System.Web.UI.WebControls/ChangePassword.cs b/mcs/class/System.Web/System.Web.UI.WebControls/ChangePassword.cs
index 64c019b..5d29f05 100644
--- a/mcs/class/System.Web/System.Web.UI.WebControls/ChangePassword.cs
+++ b/mcs/class/System.Web/System.Web.UI.WebControls/ChangePassword.cs
@@ -1148,7 +1148,7 @@ namespace System.Web.UI.WebControls
 
 		#endregion
 
-			class BaseChangePasswordContainer : Table, INamingContainer, INonBindingContainer
+		class BaseChangePasswordContainer : Table, INamingContainer, INonBindingContainer
 		{
 			protected readonly ChangePassword _owner = null;
 			TableCell _containerCell = null;
@@ -1183,6 +1183,15 @@ namespace System.Web.UI.WebControls
 				ApplyStyle (_owner.ControlStyle);
 				base.OnPreRender (e);
 			}
+
+			protected override void EnsureChildControls ()
+			{
+				base.EnsureChildControls ();
+
+				// it's the owner who adds controls, not us
+				if (_owner != null)
+					_owner.EnsureChildControls ();
+			}
 		}
 
 		sealed class ChangePasswordContainer : BaseChangePasswordContainer
diff --git a/mcs/class/System.Web/System.Web.UI.WebControls/ControlParameter.cs b/mcs/class/System.Web/System.Web.UI.WebControls/ControlParameter.cs
index c64bb93..0c14622 100644
--- a/mcs/class/System.Web/System.Web.UI.WebControls/ControlParameter.cs
+++ b/mcs/class/System.Web/System.Web.UI.WebControls/ControlParameter.cs
@@ -31,6 +31,7 @@
 #if NET_2_0
 using System.Collections;
 using System.Collections.Specialized;
+using System.Data;
 using System.Text;
 using System.ComponentModel;
 using System.Reflection;
@@ -66,6 +67,12 @@ namespace System.Web.UI.WebControls {
 			ControlID = controlID;
 			PropertyName = propertyName;
 		}
+
+		public ControlParameter (string name, DbType dbType, string controlID, string propertyName) : base (name, dbType)
+		{
+			ControlID = controlID;
+			PropertyName = propertyName;
+		}
 		
 		protected override Parameter Clone ()
 		{
diff --git a/mcs/class/System.Web/System.Web.UI.WebControls/Parameter.cs b/mcs/class/System.Web/System.Web.UI.WebControls/Parameter.cs
index 79a8d05..81faca7 100644
--- a/mcs/class/System.Web/System.Web.UI.WebControls/Parameter.cs
+++ b/mcs/class/System.Web/System.Web.UI.WebControls/Parameter.cs
@@ -68,6 +68,149 @@ namespace System.Web.UI.WebControls {
 		{
 			this.DefaultValue = defaultValue;
 		}
+
+		public Parameter (string name, DbType dbType) : this (name)
+		{
+			this.DbType = dbType;
+		}
+
+		public Parameter (string name, DbType dbType, string defaultValue) : this (name, dbType)
+		{
+			this.DefaultValue = defaultValue;
+		}
+
+		public static TypeCode ConvertDbTypeToTypeCode (DbType dbType)
+		{
+			switch (dbType) {
+				case DbType.AnsiString:
+				case DbType.AnsiStringFixedLength:
+				case DbType.StringFixedLength:
+				case DbType.String:
+					return TypeCode.String;
+
+				case DbType.Binary:
+				case DbType.Guid:
+				case DbType.Object:
+				case DbType.Xml:
+				case DbType.DateTimeOffset:
+					return TypeCode.Object;
+
+				case DbType.Byte:
+					return TypeCode.Byte;
+
+				case DbType.Boolean:
+					return TypeCode.Boolean;
+
+				case DbType.Currency:
+				case DbType.Decimal:
+				case DbType.VarNumeric:
+					return TypeCode.Decimal;
+
+				case DbType.Date:
+				case DbType.DateTime:
+				case DbType.DateTime2:
+				case DbType.Time:
+					return TypeCode.DateTime;
+
+				case DbType.Double:
+					return TypeCode.Double;
+				
+				case DbType.Int16:
+					return TypeCode.Int16;
+
+				case DbType.Int32:
+					return TypeCode.Int32;
+
+				case DbType.Int64:
+					return TypeCode.Int64;
+				
+				case DbType.SByte:
+					return TypeCode.SByte;
+
+				case DbType.Single:
+					return TypeCode.Single;
+
+				case DbType.UInt16:
+					return TypeCode.UInt16;
+
+				case DbType.UInt32:
+					return TypeCode.UInt32;
+
+				case DbType.UInt64:
+					return TypeCode.UInt64;
+
+				default:
+					return TypeCode.Object;
+			}
+		}
+
+		public static DbType ConvertTypeCodeToDbType (TypeCode typeCode)
+		{
+			switch (typeCode) {
+				case TypeCode.Empty:
+				case TypeCode.Object:
+				case TypeCode.DBNull:					
+					return DbType.Object;
+
+				case TypeCode.Boolean:
+					return DbType.Boolean;
+
+				case TypeCode.Char:
+					return DbType.StringFixedLength;
+
+				case TypeCode.SByte:
+					return DbType.SByte;
+
+				case TypeCode.Byte:
+					return DbType.Byte;
+
+				case TypeCode.Int16:
+					return DbType.Int16;
+
+				case TypeCode.UInt16:
+					return DbType.UInt16;
+
+				case TypeCode.Int32:
+					return DbType.Int32;
+
+				case TypeCode.UInt32:
+					return DbType.UInt32;
+
+				case TypeCode.Int64:
+					return DbType.Int64;
+
+				case TypeCode.UInt64:
+					return DbType.UInt64;
+
+				case TypeCode.Single:
+					return DbType.Single;
+
+				case TypeCode.Double:
+					return DbType.Double;
+
+				case TypeCode.Decimal:
+					return DbType.Decimal;
+
+				case TypeCode.DateTime:
+					return DbType.DateTime;
+
+				case TypeCode.String:
+					return DbType.String;
+
+				default:
+					return DbType.Object;
+			}
+		}
+
+		public DbType GetDatabaseType ()
+		{
+			DbType dt = this.DbType;
+
+			if (dt != DbType.Object)
+				throw new InvalidOperationException ("The DbType property is already set to a value other than DbType.Object.");
+
+			return ConvertTypeCodeToDbType (this.Type);
+		}
 		
 		protected virtual Parameter Clone ()
 		{
@@ -224,8 +367,7 @@ namespace System.Web.UI.WebControls {
 		[DefaultValueAttribute (TypeCode.Empty)]
 		[WebCategoryAttribute ("Parameter"), 
 		WebSysDescriptionAttribute("Represents type of the parameter.")]
-		public TypeCode Type
-		{
+		public TypeCode Type {
 			get { return (TypeCode) ViewState.GetInt ("Type", (int)TypeCode.Empty); }
 			set {
 				
diff --git a/mcs/class/System.Web/System.Web.UI/ChangeLog b/mcs/class/System.Web/System.Web.UI/ChangeLog
index 9594445..2c2b26a 100644
--- a/mcs/class/System.Web/System.Web.UI/ChangeLog
+++ b/mcs/class/System.Web/System.Web.UI/ChangeLog
@@ -1,3 +1,9 @@
+2009-12-18  Marek Habersack  <mhabersack at novell.com>
+
+	* ObjectStateFormatter.cs: ObjectFormatter.WriteObject checks
+	whether candidate converter can convert from string now. Fixes bug
+	#565547
+
 2009-11-14  Marek Habersack  <mhabersack at novell.com>
 
 	* TemplateControl.cs: if writer is null in
diff --git a/mcs/class/System.Web/System.Web.UI/ObjectStateFormatter.cs b/mcs/class/System.Web/System.Web.UI/ObjectStateFormatter.cs
index 11ecd5c..1f31da5 100644
--- a/mcs/class/System.Web/System.Web.UI/ObjectStateFormatter.cs
+++ b/mcs/class/System.Web/System.Web.UI/ObjectStateFormatter.cs
@@ -438,7 +438,8 @@ namespace System.Web.UI {
 						// consisting of a call to ToString() with no
 						// reverse conversion supported. This leads to
 						// problems when deserializing the object.
-						if (converter == null || converter.GetType () == typeof (TypeConverter) || !converter.CanConvertTo (typeof (string)))
+						if (converter == null || converter.GetType () == typeof (TypeConverter) ||
+						    !converter.CanConvertTo (typeof (string)) || !converter.CanConvertFrom (typeof (string)))
 							fmt = binaryObjectFormatter;
 						else {
 							typeConverterFormatter.Converter = converter;
diff --git a/mcs/class/System.Web/System.Web/ChangeLog b/mcs/class/System.Web/System.Web/ChangeLog
index a2c99f9..d727f96 100644
--- a/mcs/class/System.Web/System.Web/ChangeLog
+++ b/mcs/class/System.Web/System.Web/ChangeLog
@@ -1,3 +1,26 @@
+2010-01-19  Marek Habersack  <mhabersack at novell.com>
+
+	* StaticSiteMapProvider.cs: AddNode checks the url of node
+	returned by FindSiteMapNode to see if it indeed was a
+	duplicate. It is necessary if application derives from
+	StaticSiteMapProvider and overrides FindSiteMapNode to return
+	RootNode if rawUrl doesn't match any existing node. Fixes bug
+	#570194
+
+2010-01-09  Marek Habersack  <mhabersack at novell.com>
+
+	* VirtualPathUtility.cs: small optimizations for GetDirectory
+
+2009-11-23  Marek Habersack  <mhabersack at novell.com>
+
+	* HttpRequest.cs: PathInfo returns an empty string when worker
+	request is absent or its GetPathInfo method returns a null. Patch
+	from Tiaan <tagdev at gmail.com>, thanks!
+
+2009-11-19  Marek Habersack  <mhabersack at novell.com>
+
+	* VirtualPathUtility.cs: made Normalize internal
+
 2009-11-16  Marek Habersack  <mhabersack at novell.com>
 
 	* HttpContext.cs: RewritePath now treats non-rooted and
diff --git a/mcs/class/System.Web/System.Web/HttpRequest.cs b/mcs/class/System.Web/System.Web/HttpRequest.cs
index 00c00e4..a6e1d06 100644
--- a/mcs/class/System.Web/System.Web/HttpRequest.cs
+++ b/mcs/class/System.Web/System.Web/HttpRequest.cs
@@ -983,6 +983,8 @@ namespace System.Web {
 					if (worker_request == null)
 						return String.Empty;
 					path_info = worker_request.GetPathInfo ();
+					if (path_info == null)
+						path_info = String.Empty;
 				}
 
 				return path_info;
diff --git a/mcs/class/System.Web/System.Web/StaticSiteMapProvider.cs b/mcs/class/System.Web/System.Web/StaticSiteMapProvider.cs
index 705fecc..ff666c9 100644
--- a/mcs/class/System.Web/System.Web/StaticSiteMapProvider.cs
+++ b/mcs/class/System.Web/System.Web/StaticSiteMapProvider.cs
@@ -39,11 +39,13 @@ namespace System.Web
 {
 	public abstract class StaticSiteMapProvider : SiteMapProvider
 	{
+		static readonly StringComparison stringComparison = HttpRuntime.CaseInsensitive ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal;
+		
 		Dictionary<string, SiteMapNode> keyToNode;
 		Dictionary<SiteMapNode, SiteMapNode> nodeToParent;
 		Dictionary<SiteMapNode, SiteMapNodeCollection> nodeToChildren;
 		Dictionary<string, SiteMapNode> urlToNode;
-			
+		
 		protected StaticSiteMapProvider ()
 		{
 			keyToNode = new Dictionary<string, SiteMapNode> ();
@@ -58,13 +60,15 @@ namespace System.Web
 				throw new ArgumentNullException ("node");
 
 			lock (this_lock) {
-				if (FindSiteMapNodeFromKey (node.Key) != null && node.Provider == this)
-					throw new InvalidOperationException (string.Format ("A node with key '{0}' already exists.",node.Key));
-
-				if (!String.IsNullOrEmpty (node.Url)) {
-					string url = MapUrl (node.Url);
-					
-					if (FindSiteMapNode (url) != null)
+				string nodeKey = node.Key;
+				if (FindSiteMapNodeFromKey (nodeKey) != null && node.Provider == this)
+					throw new InvalidOperationException (string.Format ("A node with key '{0}' already exists.",nodeKey));
+
+				string nodeUrl = node.Url;
+				if (!String.IsNullOrEmpty (nodeUrl)) {
+					string url = MapUrl (nodeUrl);
+					SiteMapNode foundNode = FindSiteMapNode (url);
+					if (foundNode != null && String.Compare (foundNode.Url, url, stringComparison) == 0)
 						throw new InvalidOperationException (String.Format (
 							"Multiple nodes with the same URL '{0}' were found. " + 
 							"StaticSiteMapProvider requires that sitemap nodes have unique URLs.",
@@ -73,7 +77,7 @@ namespace System.Web
 
 					urlToNode.Add (url, node);
 				}
-				keyToNode.Add (node.Key, node);
+				keyToNode.Add (nodeKey, node);
 
 				if (node == RootNode)
 					return;
@@ -113,10 +117,10 @@ namespace System.Web
 			SiteMapNode node;
 			if (VirtualPathUtility.IsAppRelative (rawUrl))
 				rawUrl = VirtualPathUtility.ToAbsolute (rawUrl, HttpRuntime.AppDomainAppVirtualPath, false);
-			
+
 			if (!urlToNode.TryGetValue (rawUrl, out node))
 				return null;
-			
+
 			return CheckAccessibility (node);
 		}
 
diff --git a/mcs/class/System.Web/System.Web/VirtualPathUtility.cs b/mcs/class/System.Web/System.Web/VirtualPathUtility.cs
index b7dd5ba..06e70c8 100644
--- a/mcs/class/System.Web/System.Web/VirtualPathUtility.cs
+++ b/mcs/class/System.Web/System.Web/VirtualPathUtility.cs
@@ -102,15 +102,16 @@ namespace System.Web {
 			if (normalize)
 				virtualPath = Normalize (virtualPath);
 
-			if (IsAppRelative (virtualPath) && virtualPath.Length < 3) { // "~" or "~/"
+			int vpLen = virtualPath.Length;
+			if (IsAppRelative (virtualPath) && vpLen < 3) { // "~" or "~/"
 				virtualPath = ToAbsolute (virtualPath);
+				vpLen = virtualPath.Length;
 			}
 			
-			if (virtualPath.Length == 1 && virtualPath [0] == '/') { // "/"
+			if (vpLen == 1 && virtualPath [0] == '/') // "/"
 				return null;
-			}
 
-			int last = virtualPath.LastIndexOf ('/', virtualPath.Length - 2, virtualPath.Length - 2);
+			int last = virtualPath.LastIndexOf ('/', vpLen - 2, vpLen - 2);
 			if (last > 0)
 				return virtualPath.Substring (0, last + 1);
 			else
@@ -332,7 +333,7 @@ namespace System.Web {
 
 		static char [] path_sep = { '/' };
 
-		static string Normalize (string path)
+		internal static string Normalize (string path)
 		{
 			if (!IsRooted (path))
 				throw new ArgumentException (String.Format ("The relative virtual path '{0}' is not allowed here.", path));
diff --git a/mcs/class/System.Web/System.Web_test.dll.sources b/mcs/class/System.Web/System.Web_test.dll.sources
index 50201fe..cbcd678 100644
--- a/mcs/class/System.Web/System.Web_test.dll.sources
+++ b/mcs/class/System.Web/System.Web_test.dll.sources
@@ -34,9 +34,14 @@ mainsoft/NunitWeb/NunitWeb/PostableRequest.cs
 mainsoft/NunitWeb/NunitWeb/PostableWorkerRequest.cs
 mainsoft/NunitWeb/NunitWeb/Response.cs
 mainsoft/NunitWeb/NunitWeb/StandardUrl.cs
+mainsoft/NunitWeb/NunitWeb/TestRoleProvider.cs
 mainsoft/NunitWeb/NunitWeb/WebTest.cs
 mainsoft/NunitWeb/NunitWeb/Tests/TagsNestedInClientTag.cs
 mainsoft/NunitWeb/NunitWeb/Tests/TestSiteMapProvider.cs
+mainsoft/NunitWeb/NunitWeb/Tests/Author.cs
+mainsoft/NunitWeb/NunitWeb/Tests/AuthorConverter.cs
+mainsoft/NunitWeb/NunitWeb/Tests/Book.cs
+mainsoft/NunitWeb/NunitWeb/Tests/BookType.cs
 System.Web/AppBrowsersTest.cs
 System.Web/HttpBrowserCapabilitiesTest.cs
 System.Web/HttpCacheVaryByContentEncodingsTest.cs
@@ -133,6 +138,7 @@ System.Web.UI.HtmlControls/HtmlTextAreaTest.cs
 System.Web.UI/DataSourceSelectArgumentsTest.cs
 System.Web.UI/HtmlTextWriterTest.cs
 System.Web.UI/MinimizableAttributeTypeConverterTest.cs
+System.Web.UI/ObjectStateFormatterTest.cs
 System.Web.UI/OutputCacheParametersTest.cs
 System.Web.UI/PageParserTest.cs
 System.Web.UI/PageParserFilterTest.cs
diff --git a/mcs/class/System.Web/Test/System.Web.Compilation/ChangeLog b/mcs/class/System.Web/Test/System.Web.Compilation/ChangeLog
index 67ec399..2627569 100644
--- a/mcs/class/System.Web/Test/System.Web.Compilation/ChangeLog
+++ b/mcs/class/System.Web/Test/System.Web.Compilation/ChangeLog
@@ -1,3 +1,7 @@
+2010-01-19  Marek Habersack  <mhabersack at novell.com>
+
+	* TemplateControlCompilerTest.cs: added test for bug #568631
+
 2009-08-25  Marek Habersack  <mhabersack at novell.com>
 
 	* TemplateControlCompilerTest.cs: added test for bug #323719
diff --git a/mcs/class/System.Web/Test/System.Web.Compilation/TemplateControlCompilerTest.cs b/mcs/class/System.Web/Test/System.Web.Compilation/TemplateControlCompilerTest.cs
index 24a5aa2..e754fcd 100644
--- a/mcs/class/System.Web/Test/System.Web.Compilation/TemplateControlCompilerTest.cs
+++ b/mcs/class/System.Web/Test/System.Web.Compilation/TemplateControlCompilerTest.cs
@@ -77,6 +77,8 @@ namespace MonoTests.System.Web.Compilation {
 			WebTest.CopyResource (GetType (), "ContentPlaceHolderInTemplate.master", "ContentPlaceHolderInTemplate.master");
 			WebTest.CopyResource (GetType (), "LinkInHeadWithEmbeddedExpression.aspx", "LinkInHeadWithEmbeddedExpression.aspx");
 			WebTest.CopyResource (GetType (), "ExpressionInListControl.aspx", "ExpressionInListControl.aspx");
+			WebTest.CopyResource (GetType (), "NestedParserFileText.aspx", "NestedParserFileText.aspx");
+			WebTest.CopyResource (GetType (), "TagWithExpressionWithinAttribute.aspx", "TagWithExpressionWithinAttribute.aspx");
 #endif
 		}
 		
@@ -215,6 +217,20 @@ namespace MonoTests.System.Web.Compilation {
 			// Just test if it throws an exception
 			new WebTest ("DuplicateControlsInClientComment.aspx").Run ();
 		}
+		
+		[Test (Description="Bug #562286")]
+		public void NestedParserFileText ()
+		{
+			// Just test if it doesn't throw an exception
+			new WebTest ("NestedParserFileText.aspx").Run ();
+		}
+
+		[Test (Description="Bug #568631")]
+		public void TagWithExpressionWithinAttribute ()
+		{
+			// Just test if it doesn't throw an exception
+			new WebTest ("TagWithExpressionWithinAttribute.aspx").Run ();
+		}
 #endif
 
 		[Test (Description="Bug #323719")]
diff --git a/mcs/class/System.Web/Test/System.Web.Security/ChangeLog b/mcs/class/System.Web/Test/System.Web.Security/ChangeLog
index d3b1ef1..3504756 100644
--- a/mcs/class/System.Web/Test/System.Web.Security/ChangeLog
+++ b/mcs/class/System.Web/Test/System.Web.Security/ChangeLog
@@ -1,3 +1,8 @@
+2010-02-11  Marek Habersack  <mhabersack at novell.com>
+
+	* RolesTest.cs: added a test for IsUserInRole. Patch from Tiaan
+	Geldenhuys <tagdev at gmail.com>, thanks!
+
 2007-02-10  Gert Driesen  <drieseng at users.sourceforge.net>
 
 	* FormsAuthenticationTest.cs: Fixed build using csc 1.x.
diff --git a/mcs/class/System.Web/Test/System.Web.Security/RolesTest.cs b/mcs/class/System.Web/Test/System.Web.Security/RolesTest.cs
index e770aad..7045f5f 100644
--- a/mcs/class/System.Web/Test/System.Web.Security/RolesTest.cs
+++ b/mcs/class/System.Web/Test/System.Web.Security/RolesTest.cs
@@ -29,10 +29,15 @@
 #if NET_2_0
 
 using System;
+using System.IO;
 using System.Security.Principal;
+using System.Web;
 using System.Web.Security;
+using System.Web.UI;
 
+using MonoTests.SystemWeb.Framework;
 using NUnit.Framework;
+using System.Configuration.Provider;
 
 namespace MonoTests.System.Web.Security {
 
@@ -61,6 +66,28 @@ namespace MonoTests.System.Web.Security {
 			// - Provider
 			// - Providers
 		}
+
+		[Test]
+		[Category ("NunitWeb")]
+		public void IsUserInRole ()
+		{
+			WebTest t = new WebTest (PageInvoker.CreateOnLoad ((Page p) => {
+						Assert.IsTrue (Roles.Enabled, "Enabled");
+						Assert.IsTrue (Roles.IsUserInRole ("true", "rolename"), "#1");
+						Assert.IsFalse (Roles.IsUserInRole ("false", "rolename"), "#2");
+
+						// NOTE: The next two tests do NOT throw an exception on MS 
+						//       .NET (even if the underlying membership-provider may, 
+						//       despite being documented differently on MSDN), but 
+						//       this convenient behaviour allows ASP.NET pages to run 
+						//       when roles are queried before the user is logged on
+						Assert.IsFalse (Roles.IsUserInRole (string.Empty, "rolename"), "#3a");
+						Assert.IsFalse (Roles.IsUserInRole ("rolename"), "#3b");
+					}));
+			t.Run ();
+			global::System.Diagnostics.Trace.WriteLineIf ((t.Response.StatusCode != global::System.Net.HttpStatusCode.OK), t.Response.Body);
+			Assert.AreEqual (global::System.Net.HttpStatusCode.OK, t.Response.StatusCode, "HttpStatusCode");
+		}
 	}
 }
 
diff --git a/mcs/class/System.Web/Test/System.Web.UI.WebControls/ChangeLog b/mcs/class/System.Web/Test/System.Web.UI.WebControls/ChangeLog
index c6ba9e7..797dbd7 100644
--- a/mcs/class/System.Web/Test/System.Web.UI.WebControls/ChangeLog
+++ b/mcs/class/System.Web/Test/System.Web.UI.WebControls/ChangeLog
@@ -1,3 +1,14 @@
+2010-01-18  Marek Habersack  <mhabersack at novell.com>
+
+	* ParameterTest.cs: added tests for ConvertDbTypeToTypeCode,
+	ConvertTypeCodeToDbType and constructors taking DbType as one of
+	the parameters.
+
+2010-01-15  Marek Habersack  <mhabersack at novell.com>
+
+	* ChangePasswordTest.cs: added test for looking for controls in
+	ChangePassword template containers.
+
 2009-11-16  Marek Habersack  <mhabersack at novell.com>
 
 	* TreeNodeTest.cs: added test for a situation when a
diff --git a/mcs/class/System.Web/Test/System.Web.UI.WebControls/ChangePasswordTest.cs b/mcs/class/System.Web/Test/System.Web.UI.WebControls/ChangePasswordTest.cs
index b4548dc..e14364a 100644
--- a/mcs/class/System.Web/Test/System.Web.UI.WebControls/ChangePasswordTest.cs
+++ b/mcs/class/System.Web/Test/System.Web.UI.WebControls/ChangePasswordTest.cs
@@ -132,6 +132,7 @@ namespace MonoTests.System.Web.UI.WebControls
 		[TestFixtureSetUp]
 		public void CopyTestResources ()
 		{
+			WebTest.CopyResource (GetType (), "ChangePasswordContainer_FindControl.aspx", "ChangePasswordContainer_FindControl.aspx");
 		}
 
 		[Test]
@@ -793,7 +794,24 @@ namespace MonoTests.System.Web.UI.WebControls
 			Assert.AreEqual (section.DefaultProvider, "FakeProvider", "section.DefaultProvider");
 			Assert.AreEqual (Membership.Provider.GetType (), typeof (FakeMembershipProvider), "Membership.Provider.GetType ()");
 		}
-
+
+		[Test]
+		public void ChangePasswordContainer_FindControl ()
+		{
+			WebTest t = new WebTest ("ChangePasswordContainer_FindControl.aspx");
+			t.Invoker = PageInvoker.CreateOnLoad (new PageDelegate (ChangePasswordContainer_FindControl_OnLoad));
+			t.Run ();
+		}
+
+		public static void ChangePasswordContainer_FindControl_OnLoad (Page p)
+		{
+			ChangePassword cp = p.FindControl ("ChangePassword1") as ChangePassword;
+			Assert.IsNotNull (cp, "#A1");
+			
+			RequiredFieldValidator rfv = cp.ChangePasswordTemplateContainer.FindControl ("text1required") as RequiredFieldValidator;
+			Assert.IsNotNull (rfv, "#A2");
+		}
+		
 		[TestFixtureTearDown]
 		public void TearDown ()
 		{
diff --git a/mcs/class/System.Web/Test/System.Web.UI.WebControls/ParameterTest.cs b/mcs/class/System.Web/Test/System.Web.UI.WebControls/ParameterTest.cs
index f41739d..7e0399b 100644
--- a/mcs/class/System.Web/Test/System.Web.UI.WebControls/ParameterTest.cs
+++ b/mcs/class/System.Web/Test/System.Web.UI.WebControls/ParameterTest.cs
@@ -274,6 +274,80 @@ namespace MonoTests.System.Web.UI.WebControls
 			Assert.AreEqual ("ID", copy.Name, "Name");
 			
 		}
+
+		[Test]
+		public void Parameter_DbTypeConstructors ()
+		{
+			int counter = 1;
+
+			foreach (var e in Enum.GetValues (typeof (DbType))) {
+				var p = new Parameter ("name", (DbType)e);
+				Assert.AreEqual (p.DbType, (DbType)e, "#A" + counter.ToString ());
+				counter++;
+			}
+
+			counter = 1;
+			foreach (var e in Enum.GetValues (typeof (DbType))) {
+				var p = new Parameter ("name", (DbType)e, "default");
+				Assert.AreEqual (p.DbType, (DbType)e, "#B" + counter.ToString ());
+				counter++;
+			}
+		}
+		
+		[Test]
+		public void Parameter_ConvertTypeCodeToDbType ()
+		{
+			Assert.AreEqual (DbType.Object, Parameter.ConvertTypeCodeToDbType (TypeCode.Empty), "#A1");
+			Assert.AreEqual (DbType.Object, Parameter.ConvertTypeCodeToDbType (TypeCode.Object), "#A2");
+			Assert.AreEqual (DbType.Object, Parameter.ConvertTypeCodeToDbType (TypeCode.DBNull), "#A3");
+			Assert.AreEqual (DbType.Boolean, Parameter.ConvertTypeCodeToDbType (TypeCode.Boolean), "#A4");
+			Assert.AreEqual (DbType.StringFixedLength, Parameter.ConvertTypeCodeToDbType (TypeCode.Char), "#A5");
+			Assert.AreEqual (DbType.SByte, Parameter.ConvertTypeCodeToDbType (TypeCode.SByte), "#A6");
+			Assert.AreEqual (DbType.Byte, Parameter.ConvertTypeCodeToDbType (TypeCode.Byte), "#A7");
+			Assert.AreEqual (DbType.Int16, Parameter.ConvertTypeCodeToDbType (TypeCode.Int16), "#A8");
+			Assert.AreEqual (DbType.UInt16, Parameter.ConvertTypeCodeToDbType (TypeCode.UInt16), "#A9");
+			Assert.AreEqual (DbType.Int32, Parameter.ConvertTypeCodeToDbType (TypeCode.Int32), "#A10");
+			Assert.AreEqual (DbType.UInt32, Parameter.ConvertTypeCodeToDbType (TypeCode.UInt32), "#A11");
+			Assert.AreEqual (DbType.Int64, Parameter.ConvertTypeCodeToDbType (TypeCode.Int64), "#A12");
+			Assert.AreEqual (DbType.UInt64, Parameter.ConvertTypeCodeToDbType (TypeCode.UInt64), "#A13");
+			Assert.AreEqual (DbType.Single, Parameter.ConvertTypeCodeToDbType (TypeCode.Single), "#A14");
+			Assert.AreEqual (DbType.Double, Parameter.ConvertTypeCodeToDbType (TypeCode.Double), "#A15");
+			Assert.AreEqual (DbType.Decimal, Parameter.ConvertTypeCodeToDbType (TypeCode.Decimal), "#A16");
+			Assert.AreEqual (DbType.DateTime, Parameter.ConvertTypeCodeToDbType (TypeCode.DateTime), "#A17");
+			Assert.AreEqual (DbType.String, Parameter.ConvertTypeCodeToDbType (TypeCode.String), "#A18");
+		}
+
+		[Test]
+		public void Parameter_ConvertDbTypeToTypeCode ()
+		{
+			Assert.AreEqual (TypeCode.String, Parameter.ConvertDbTypeToTypeCode (DbType.AnsiString), "#A1");
+			Assert.AreEqual (TypeCode.Object, Parameter.ConvertDbTypeToTypeCode (DbType.Binary), "#A2");
+			Assert.AreEqual (TypeCode.Byte, Parameter.ConvertDbTypeToTypeCode (DbType.Byte), "#A3");
+			Assert.AreEqual (TypeCode.Boolean, Parameter.ConvertDbTypeToTypeCode (DbType.Boolean), "#A4");
+			Assert.AreEqual (TypeCode.Decimal, Parameter.ConvertDbTypeToTypeCode (DbType.Currency), "#A5");
+			Assert.AreEqual (TypeCode.DateTime, Parameter.ConvertDbTypeToTypeCode (DbType.Date), "#A6");
+			Assert.AreEqual (TypeCode.DateTime, Parameter.ConvertDbTypeToTypeCode (DbType.DateTime), "#A7");
+			Assert.AreEqual (TypeCode.Decimal, Parameter.ConvertDbTypeToTypeCode (DbType.Decimal), "#A8");
+			Assert.AreEqual (TypeCode.Double, Parameter.ConvertDbTypeToTypeCode (DbType.Double), "#A9");
+			Assert.AreEqual (TypeCode.Object, Parameter.ConvertDbTypeToTypeCode (DbType.Guid), "#A10");
+			Assert.AreEqual (TypeCode.Int16, Parameter.ConvertDbTypeToTypeCode (DbType.Int16), "#A11");
+			Assert.AreEqual (TypeCode.Int32, Parameter.ConvertDbTypeToTypeCode (DbType.Int32), "#A12");
+			Assert.AreEqual (TypeCode.Int64, Parameter.ConvertDbTypeToTypeCode (DbType.Int64), "#A13");
+			Assert.AreEqual (TypeCode.Object, Parameter.ConvertDbTypeToTypeCode (DbType.Object), "#A14");
+			Assert.AreEqual (TypeCode.SByte, Parameter.ConvertDbTypeToTypeCode (DbType.SByte), "#A15");
+			Assert.AreEqual (TypeCode.Single, Parameter.ConvertDbTypeToTypeCode (DbType.Single), "#A16");
+			Assert.AreEqual (TypeCode.String, Parameter.ConvertDbTypeToTypeCode (DbType.String), "#A17");
+			Assert.AreEqual (TypeCode.DateTime, Parameter.ConvertDbTypeToTypeCode (DbType.Time), "#A18");
+			Assert.AreEqual (TypeCode.UInt16, Parameter.ConvertDbTypeToTypeCode (DbType.UInt16), "#A19");
+			Assert.AreEqual (TypeCode.UInt32, Parameter.ConvertDbTypeToTypeCode (DbType.UInt32), "#A20");
+			Assert.AreEqual (TypeCode.UInt64, Parameter.ConvertDbTypeToTypeCode (DbType.UInt64), "#A21");
+			Assert.AreEqual (TypeCode.Decimal, Parameter.ConvertDbTypeToTypeCode (DbType.VarNumeric), "#A22");
+			Assert.AreEqual (TypeCode.String, Parameter.ConvertDbTypeToTypeCode (DbType.AnsiStringFixedLength), "#A23");
+			Assert.AreEqual (TypeCode.String, Parameter.ConvertDbTypeToTypeCode (DbType.StringFixedLength), "#A24");
+			Assert.AreEqual (TypeCode.Object, Parameter.ConvertDbTypeToTypeCode (DbType.Xml), "#A25");
+			Assert.AreEqual (TypeCode.DateTime, Parameter.ConvertDbTypeToTypeCode (DbType.DateTime2), "#A26");
+			Assert.AreEqual (TypeCode.Object, Parameter.ConvertDbTypeToTypeCode (DbType.DateTimeOffset), "#A27");
+		}
 	}
 }
 #endif 
diff --git a/mcs/class/System.Web/Test/System.Web.UI/ChangeLog b/mcs/class/System.Web/Test/System.Web.UI/ChangeLog
index b488138..8da7199 100644
--- a/mcs/class/System.Web/Test/System.Web.UI/ChangeLog
+++ b/mcs/class/System.Web/Test/System.Web.UI/ChangeLog
@@ -1,3 +1,7 @@
+2009-12-18  Marek Habersack  <mhabersack at novell.com>
+
+	* ObjectStateFormatterTest.cs: added.
+
 2009-04-24  Marek Habersack  <mhabersack at novell.com>
 
 	* PageParserFilterTest.cs: added
diff --git a/mcs/class/System.Web/Test/System.Web.UI/ObjectStateFormatterTest.cs b/mcs/class/System.Web/Test/System.Web.UI/ObjectStateFormatterTest.cs
new file mode 100644
index 0000000..7417c95
--- /dev/null
+++ b/mcs/class/System.Web/Test/System.Web.UI/ObjectStateFormatterTest.cs
@@ -0,0 +1,106 @@
+//
+// Tests for System.Web.UI.ObjectStateFormatter
+//
+// Authors:
+//	Marek Habersack <mhabersack at novell.com>
+//
+// Copyright (C) 2009 Novell, Inc (http://novell.com)
+
+
+//
+// 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.
+//
+
+#if NET_2_0
+using System;
+using System.Web;
+using System.Web.UI;
+
+using MonoTests.SystemWeb.Framework;
+using MonoTests.stand_alone.WebHarness;
+using NUnit.Framework;
+
+namespace MonoTests.System.Web.UI
+{
+	[TestFixture]
+	public class ObjectStateFormatterTest
+	{
+		[TestFixtureSetUp]
+		public void SetUp ()
+		{
+			Type t = GetType ();
+
+			WebTest.CopyResource (t, "StateFormatter_CorrectConverter.aspx", "StateFormatter_CorrectConverter.aspx");
+			WebTest.CopyResource (t, "StateFormatter_CollectionConverter.aspx", "StateFormatter_CollectionConverter.aspx");
+			WebTest.CopyResource (t, "StateFormatter_CollectionConverter.aspx.cs", "StateFormatter_CollectionConverter.aspx.cs");
+		}
+
+		[Test (Description="Bug #545979")]
+		public void StateFormatter_CorrectConverter ()
+		{
+			// We test only if it doesn't throw exception on postback
+			WebTest t = new WebTest ("StateFormatter_CorrectConverter.aspx");
+			t.Run ();
+
+			var fr = new FormRequest (t.Response, "Form1");
+			fr.Controls.Add ("Button1");
+			fr.Controls ["Button1"].Value = "Change";
+			t.Request = fr;
+			t.Run ();
+
+			fr = new FormRequest (t.Response, "Form1");
+			fr.Controls.Add ("Button2");
+			fr.Controls ["Button2"].Value = "Refresh";
+		}
+
+		[Test (Description="Bug #565547")]
+		public void StateFormatter_CollectionFormatter ()
+		{
+			WebTest t = new WebTest ("StateFormatter_CollectionConverter.aspx");
+			t.Run ();
+
+			var fr = new FormRequest (t.Response, "form1");
+			fr.Controls.Add ("btnSearch");
+			fr.Controls.Add ("ddlDate");
+			fr.Controls.Add ("txtSearchValue");
+
+			fr.Controls ["btnSearch"].Value = "Search";
+			fr.Controls ["ddlDate"].Value = "2009";
+
+			t.Request = fr;
+			string pageHtml = t.Run ();
+			string renderedHtml = HtmlDiff.GetControlFromPageHtml (pageHtml);
+			string originalHtml = @"<div>
+
+		<table id=""gvECCN"" cellspacing=""0"" rules=""all"" border=""1"" style=""border-collapse:collapse;"">
+				<tr>
+					<th align=""left"" scope=""col""> </th><th align=""left"" scope=""col"">Schedule B</th><th align=""left"" scope=""col"">Count</th><th align=""left"" scope=""col"">Total</th><th align=""left"" scope=""col"">Percent</th>
+				</tr><tr>
+					<td style=""height:18px;width:30px;"">1</td><td style=""width:140px;"">test</td><td style=""width:90px;"">1</td><td style=""width:100px;"">100</td><td style=""width:90px;"">250.00 %</td>
+
+				</tr>
+			</table>
+		</div>";
+
+			HtmlDiff.AssertAreEqual (originalHtml, renderedHtml, "#A1");
+		}
+	}
+}
+#endif
\ No newline at end of file
diff --git a/mcs/class/System.Web/Test/System.Web/HttpContext.cs b/mcs/class/System.Web/Test/System.Web/HttpContext.cs
index 640c540..329bab6 100644
--- a/mcs/class/System.Web/Test/System.Web/HttpContext.cs
+++ b/mcs/class/System.Web/Test/System.Web/HttpContext.cs
@@ -90,6 +90,7 @@ namespace MonoTests.System.Web {
 			Assert.IsNotNull (ctx.Response, "Response");
 		}
 
+#if NET_2_0
 		[Test]
 		public void RewritePath ()
 		{
@@ -145,5 +146,6 @@ namespace MonoTests.System.Web {
 				// success
 			}
 		}
+#endif
 	}
 }
diff --git a/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/ChangeLog b/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/ChangeLog
index eef49ac..ae72d90 100644
--- a/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/ChangeLog
+++ b/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/ChangeLog
@@ -1,3 +1,8 @@
+2010-02-11  Marek Habersack  <mhabersack at novell.com>
+
+	* TestRoleProvider.cs: added. Contributed by Tiaan Geldenhuys
+	<tagdev at gmail.com>, thanks!
+
 2009-11-04  Marek Habersack  <mhabersack at novell.com>
 
 	* WebTest.cs: include App_GlobalResources only when compiling
diff --git a/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Resources/Web.mono.config b/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Resources/Web.mono.config
index e0e8696..99629a3 100755
--- a/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Resources/Web.mono.config
+++ b/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Resources/Web.mono.config
@@ -62,6 +62,12 @@
              passwordStrengthRegularExpression="" />
       </providers>
     </membership>
+ <roleManager defaultProvider="TheRoleProvider" enabled="true">
+    <providers>
+	<clear />
+	<add name="TheRoleProvider" type="MonoTests.SystemWeb.Framework.TestRoleProvider"/>
+	</providers>
+ </roleManager>
   </system.web>
 	<system.web.extensions>
 		<scripting>
diff --git a/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/TestRoleProvider.cs b/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/TestRoleProvider.cs
new file mode 100644
index 0000000..7811a9c
--- /dev/null
+++ b/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/TestRoleProvider.cs
@@ -0,0 +1,83 @@
+#if NET_2_0
+
+using System;
+using System.Collections.Specialized;
+using System.Configuration.Provider;
+using System.Web.Security;
+
+namespace MonoTests.SystemWeb.Framework
+{
+	public class TestRoleProvider : RoleProvider
+	{
+		public override string ApplicationName
+		{
+			get;
+			set;
+		}
+
+		public override void AddUsersToRoles(string[] usernames, string[] roleNames)
+		{
+			throw new Exception ("Not implemented yet.");
+		}
+
+		public override void CreateRole (string roleName)
+		{
+			throw new Exception ("Not implemented yet.");
+		}
+
+		public override bool DeleteRole (string roleName, bool throwOnPopulatedRole)
+		{
+			throw new Exception ("Not implemented yet.");
+		}
+
+		public override string[] FindUsersInRole (string roleName, string usernameToMatch)
+		{
+			throw new Exception ("Not implemented yet.");
+		}
+
+		public override string[] GetAllRoles ()
+		{
+			throw new Exception ("Not implemented yet.");
+		}
+
+		public override string[] GetRolesForUser (string username)
+		{
+			throw new Exception ("Not implemented yet.");
+		}
+
+		public override string[] GetUsersInRole (string roleName)
+		{
+			throw new Exception ("Not implemented yet.");
+		}
+
+		public override bool IsUserInRole (string username, string roleName)
+		{
+			if (username == null)
+				throw new ArgumentNullException ("Username cannot be null.");
+			if (roleName == null)
+				throw new ArgumentNullException ("Role name cannot be null.");
+			if (username == string.Empty)
+				throw new ArgumentException ("Username cannot be empty.");
+			if (roleName == string.Empty)
+				throw new ArgumentException ("Role name cannot be empty.");
+			if (username == "invalid")
+				throw new ProviderException ("User does not exist.");
+			if (roleName == "invalid")
+				throw new ProviderException ("Role does not exist.");
+			if (username == "true")
+				return true;
+			return false;
+		}
+
+		public override void RemoveUsersFromRoles (string[] usernames, string[] roleNames)
+		{
+			throw new Exception ("Not implemented yet.");
+		}
+
+		public override bool RoleExists (string roleName)
+		{
+			throw new Exception ("Not implemented yet.");
+		}
+	}
+}
+#endif
diff --git a/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Tests/Author.cs b/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Tests/Author.cs
new file mode 100644
index 0000000..b6bc31b
--- /dev/null
+++ b/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Tests/Author.cs
@@ -0,0 +1,106 @@
+#if NET_2_0
+// Author.cs
+using System;
+using System.Collections;
+using System.ComponentModel;
+using System.Globalization;
+using System.Web.UI;
+
+namespace Samples.AspNet.CS.Controls
+{
+    [
+    TypeConverter(typeof(AuthorConverter))
+    ]
+    public class Author
+    {
+        private string firstnameValue;
+        private string lastnameValue;
+        private string middlenameValue;
+
+        public Author()
+            :
+            this(String.Empty, String.Empty, String.Empty)
+        {
+        }
+
+        public Author(string firstname, string lastname)
+            :
+            this(firstname, String.Empty, lastname)
+        {
+        }
+
+        public Author(string firstname, 
+                    string middlename, string lastname)
+        {
+            firstnameValue = firstname;
+            middlenameValue = middlename;
+            lastnameValue = lastname;
+        }
+
+        [
+        Category("Behavior"),
+        DefaultValue(""),
+        Description("First name of author."),
+        NotifyParentProperty(true),
+        ]
+        public virtual String FirstName
+        {
+            get
+            {
+                return firstnameValue;
+            }
+            set
+            {
+                firstnameValue = value;
+            }
+        }
+
+        [
+        Category("Behavior"),
+        DefaultValue(""),
+        Description("Last name of author."),
+        NotifyParentProperty(true)
+        ]
+        public virtual String LastName
+        {
+            get
+            {
+                return lastnameValue;
+            }
+            set
+            {
+                lastnameValue = value;
+            }
+        }
+
+        [
+        Category("Behavior"),
+        DefaultValue(""),
+        Description("Middle name of author."),
+        NotifyParentProperty(true)
+        ]
+        public virtual String MiddleName
+        {
+            get
+            {
+                return middlenameValue;
+            }
+            set
+            {
+                middlenameValue = value;
+            }
+        }
+
+        public override string ToString()
+        {
+            return ToString(CultureInfo.InvariantCulture);
+        }
+
+        public string ToString(CultureInfo culture)
+        {
+            return TypeDescriptor.GetConverter(
+                GetType()).ConvertToString(null, culture, this);
+        }
+    }
+}
+#endif
diff --git a/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Tests/AuthorConverter.cs b/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Tests/AuthorConverter.cs
new file mode 100644
index 0000000..4dab68c
--- /dev/null
+++ b/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Tests/AuthorConverter.cs
@@ -0,0 +1,116 @@
+#if NET_2_0
+// AuthorConverter.cs
+using System;
+using System.ComponentModel;
+using System.ComponentModel.Design.Serialization;
+using System.Globalization;
+using System.Reflection;
+
+namespace Samples.AspNet.CS.Controls
+{
+    public class AuthorConverter : ExpandableObjectConverter
+    {
+        public override bool CanConvertFrom(
+            ITypeDescriptorContext context, Type sourceType)
+        {
+            if (sourceType == typeof(string))
+            {
+                return true;
+            }
+            return base.CanConvertFrom(context, sourceType);
+        }
+
+        public override bool CanConvertTo(
+            ITypeDescriptorContext context, Type destinationType)
+        {
+            if (destinationType == typeof(string))
+            {
+                return true;
+            }
+            return base.CanConvertTo(context, destinationType);
+        }
+
+        public override object ConvertFrom(ITypeDescriptorContext 
+            context, CultureInfo culture, object value)
+        {
+            if (value == null)
+            {
+                return new Author();
+            }
+
+            if (value is string)
+            {
+                string s = (string)value;
+                if (s.Length == 0)
+                {
+                    return new Author();
+                }
+
+                string[] parts = s.Split(' ');
+
+                        // Determine if name is stored as first and 
+                        // last; first, middle, and last;
+                        // or is in error.
+                if ((parts.Length < 2) || (parts.Length > 3))
+                {
+                    throw new ArgumentException(
+                        "Name must have 2 or 3 parts.", "value");
+                }
+
+                if (parts.Length == 2)
+                {
+                    return new Author(parts[0], parts[1]);
+                }
+
+                if (parts.Length == 3)
+                {
+                    return new Author(parts[0], parts[1], parts[2]);
+                }
+            }
+
+            return base.ConvertFrom(context, culture, value);
+        }
+
+        public override object ConvertTo(
+            ITypeDescriptorContext context,
+            CultureInfo culture, object value, Type destinationType)
+        {
+            if (value != null)
+            {
+                if (!(value is Author))
+                {
+                    throw new ArgumentException(
+                        "Invalid Author", "value");
+                }
+            }
+
+            if (destinationType == typeof(string))
+            {
+                if (value == null)
+                {
+                    return String.Empty;
+                }
+
+                Author auth = (Author)value;
+
+                if (auth.MiddleName != String.Empty)
+                {
+                    return String.Format("{0} {1} {2}",
+                        auth.FirstName,
+                        auth.MiddleName,
+                        auth.LastName);
+                }
+                else
+                {
+                    return String.Format("{0} {1}",
+                         auth.FirstName,
+                        auth.LastName);
+                }
+            }
+
+            return base.ConvertTo(context, culture, value, 
+                destinationType);
+        }
+    }
+}
+#endif
diff --git a/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Tests/Book.cs b/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Tests/Book.cs
new file mode 100644
index 0000000..4924565
--- /dev/null
+++ b/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Tests/Book.cs
@@ -0,0 +1,196 @@
+#if NET_2_0
+// Book.cs
+using System;
+using System.ComponentModel;
+using System.Security.Permissions;
+using System.Web;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+
+namespace Samples.AspNet.CS.Controls
+{
+    [
+    AspNetHostingPermission(SecurityAction.Demand,
+        Level = AspNetHostingPermissionLevel.Minimal),
+    AspNetHostingPermission(SecurityAction.InheritanceDemand, 
+        Level=AspNetHostingPermissionLevel.Minimal),
+    DefaultProperty("Title"),
+    ToolboxData("<{0}:Book runat=\"server\"> </{0}:Book>")
+    ]
+    public class Book : WebControl
+    {
+        private Author authorValue;
+        private String initialAuthorString;
+
+        [
+        Bindable(true),
+        Category("Appearance"),
+        DefaultValue(""),
+        Description("The name of the author."),
+        DesignerSerializationVisibility(
+            DesignerSerializationVisibility.Content),
+        PersistenceMode(PersistenceMode.InnerProperty),
+        ]
+        public virtual Author Author
+        {
+            get
+            {
+                if (authorValue == null)
+                {
+                    authorValue = new Author();
+                }
+                return authorValue;
+            }
+
+        }
+
+        [
+        Bindable(true),
+        Category("Appearance"),
+        DefaultValue(BookType.NotDefined),
+        Description("Fiction or Not"),
+        ]
+        public virtual BookType BookType
+        {
+            get
+            {
+                object t = ViewState["BookType"];
+                return (t == null) ? BookType.NotDefined : (BookType)t;
+            }
+            set
+            {
+                ViewState["BookType"] = value;
+            }
+        }
+
+        [
+        Bindable(true),
+        Category("Appearance"),
+        DefaultValue(""),
+        Description("The symbol for the currency."),
+        Localizable(true)
+        ]
+        public virtual string CurrencySymbol
+        {
+            get
+            {
+                string s = (string)ViewState["CurrencySymbol"];
+                return (s == null) ? String.Empty : s;
+            }
+            set
+            {
+                ViewState["CurrencySymbol"] = value;
+            }
+        }
+
+
+        [
+        Bindable(true),
+        Category("Appearance"),
+        DefaultValue("0.00"),
+        Description("The price of the book."),
+        Localizable(true)
+        ]
+        public virtual Decimal Price
+        {
+            get
+            {
+                object price = ViewState["Price"];
+                return (price  == null) ? Decimal.Zero : (Decimal)price;
+            }
+            set
+            {
+                ViewState["Price"] = value;
+            }
+        }
+
+        [
+        Bindable(true),
+        Category("Appearance"),
+        DefaultValue(""),
+        Description("The title of the book."),
+        Localizable(true)
+        ]
+        public virtual string Title
+        {
+            get
+            {
+                string s = (string)ViewState["Title"];
+                return (s == null) ? String.Empty : s;
+            }
+            set
+            {
+                ViewState["Title"] = value;
+            }
+        }
+
+        protected override void RenderContents(HtmlTextWriter writer)
+        {
+            writer.RenderBeginTag(HtmlTextWriterTag.Table);
+
+            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
+            writer.RenderBeginTag(HtmlTextWriterTag.Td);
+            writer.WriteEncodedText(Title);
+            writer.RenderEndTag();
+            writer.RenderEndTag();
+
+            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
+            writer.RenderBeginTag(HtmlTextWriterTag.Td);
+            writer.WriteEncodedText(Author.ToString());
+            writer.RenderEndTag();
+            writer.RenderEndTag();
+
+            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
+            writer.RenderBeginTag(HtmlTextWriterTag.Td);
+            writer.WriteEncodedText(BookType.ToString());
+            writer.RenderEndTag();
+            writer.RenderEndTag();
+
+            writer.RenderBeginTag(HtmlTextWriterTag.Tr);
+            writer.RenderBeginTag(HtmlTextWriterTag.Td);
+            writer.Write(CurrencySymbol);
+            writer.Write(" ");
+            writer.Write(String.Format("{0:F2}", Price));
+            writer.RenderEndTag();
+            writer.RenderEndTag();
+
+            writer.RenderEndTag();
+        }
+
+        protected override void LoadViewState(object savedState)
+        {
+            base.LoadViewState(savedState);
+
+            Author auth = (Author)ViewState["Author"];
+            if (auth != null)
+            {
+                authorValue = auth;
+            }
+        }
+
+        protected override object SaveViewState()
+        {
+            if (authorValue != null)
+            {
+                String currentAuthorString = authorValue.ToString();
+                if (!(currentAuthorString.Equals(initialAuthorString)))
+                {
+                    ViewState["Author"] = authorValue;
+                }
+            }
+
+            return base.SaveViewState();
+        }
+
+        protected override void TrackViewState()
+        {
+            if (authorValue != null)
+            {
+                initialAuthorString = authorValue.ToString();
+            }
+            base.TrackViewState();
+        }
+
+    }
+}
+#endif
diff --git a/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Tests/BookType.cs b/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Tests/BookType.cs
new file mode 100644
index 0000000..5a03dcf
--- /dev/null
+++ b/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/Tests/BookType.cs
@@ -0,0 +1,14 @@
+#if NET_2_0
+// BookType.cs
+using System;
+
+namespace Samples.AspNet.CS.Controls
+{
+    public enum BookType
+    {
+        NotDefined = 0,
+        Fiction = 1,
+        NonFiction = 2
+    }
+}
+#endif
diff --git a/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/WebTest.cs b/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/WebTest.cs
index 5e3d8eb..6a58860 100644
--- a/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/WebTest.cs
+++ b/mcs/class/System.Web/Test/mainsoft/NunitWeb/NunitWeb/WebTest.cs
@@ -523,6 +523,7 @@ namespace MonoTests.SystemWeb.Framework
 #if INSIDE_SYSTEM_WEB
 			CopyResource (typeof (WebTest), "Common.resx", "App_GlobalResources/Common.resx");
 			CopyResource (typeof (WebTest), "Common.fr-FR.resx", "App_GlobalResources/Common.fr-FR.resx");
+			CopyResource (typeof (WebTest), "Resource1.resx", "App_GlobalResources/Resource1.resx");
 #endif
 			CopyResource (typeof (WebTest), "Web.mono.config", "Web.config");
 			CopyResource (typeof (WebTest), "MyPage.aspx", "MyPage.aspx");
diff --git a/mcs/class/System.Web/Test/mainsoft/NunitWebResources/App_GlobalResources/Resource1.resx b/mcs/class/System.Web/Test/mainsoft/NunitWebResources/App_GlobalResources/Resource1.resx
new file mode 100644
index 0000000..59a3c37
--- /dev/null
+++ b/mcs/class/System.Web/Test/mainsoft/NunitWebResources/App_GlobalResources/Resource1.resx
@@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="utf-8"?>
+<root>
+  <!-- 
+    Microsoft ResX Schema 
+    
+    Version 2.0
+    
+    The primary goals of this format is to allow a simple XML format 
+    that is mostly human readable. The generation and parsing of the 
+    various data types are done through the TypeConverter classes 
+    associated with the data types.
+    
+    Example:
+    
+    ... ado.net/XML headers & schema ...
+    <resheader name="resmimetype">text/microsoft-resx</resheader>
+    <resheader name="version">2.0</resheader>
+    <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
+    <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
+    <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
+    <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
+    <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
+        <value>[base64 mime encoded serialized .NET Framework object]</value>
+    </data>
+    <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
+        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
+        <comment>This is a comment</comment>
+    </data>
+                
+    There are any number of "resheader" rows that contain simple 
+    name/value pairs.
+    
+    Each data row contains a name, and value. The row also contains a 
+    type or mimetype. Type corresponds to a .NET class that support 
+    text/value conversion through the TypeConverter architecture. 
+    Classes that don't support this are serialized and stored with the 
+    mimetype set.
+    
+    The mimetype is used for serialized objects, and tells the 
+    ResXResourceReader how to depersist the object. This is currently not 
+    extensible. For a given mimetype the value must be set accordingly:
+    
+    Note - application/x-microsoft.net.object.binary.base64 is the format 
+    that the ResXResourceWriter will generate, however the reader can 
+    read any of the formats listed below.
+    
+    mimetype: application/x-microsoft.net.object.binary.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
+            : and then encoded with base64 encoding.
+    
+    mimetype: application/x-microsoft.net.object.soap.base64
+    value   : The object must be serialized with 
+            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
+            : and then encoded with base64 encoding.
+
+    mimetype: application/x-microsoft.net.object.bytearray.base64
+    value   : The object must be serialized into a byte array 
+            : using a System.ComponentModel.TypeConverter
+            : and then encoded with base64 encoding.
+    -->
+  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
+    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
+    <xsd:element name="root" msdata:IsDataSet="true">
+      <xsd:complexType>
+        <xsd:choice maxOccurs="unbounded">
+          <xsd:element name="metadata">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" />
+              </xsd:sequence>
+              <xsd:attribute name="name" use="required" type="xsd:string" />
+              <xsd:attribute name="type" type="xsd:string" />
+              <xsd:attribute name="mimetype" type="xsd:string" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="assembly">
+            <xsd:complexType>
+              <xsd:attribute name="alias" type="xsd:string" />
+              <xsd:attribute name="name" type="xsd:string" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="data">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
+              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
+              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
+              <xsd:attribute ref="xml:space" />
+            </xsd:complexType>
+          </xsd:element>
+          <xsd:element name="resheader">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
+              </xsd:sequence>
+              <xsd:attribute name="name" type="xsd:string" use="required" />
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:choice>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:schema>
+  <resheader name="resmimetype">
+    <value>text/microsoft-resx</value>
+  </resheader>
+  <resheader name="version">
+    <value>2.0</value>
+  </resheader>
+  <resheader name="reader">
+    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <resheader name="writer">
+    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
+  </resheader>
+  <data name="TestString" xml:space="preserve">
+    <value>Test</value>
+  </data>
+</root>
\ No newline at end of file
diff --git a/mcs/class/System.Web/Test/mainsoft/NunitWebResources/ChangePasswordContainer_FindControl.aspx b/mcs/class/System.Web/Test/mainsoft/NunitWebResources/ChangePasswordContainer_FindControl.aspx
new file mode 100644
index 0000000..3a09ae6
--- /dev/null
+++ b/mcs/class/System.Web/Test/mainsoft/NunitWebResources/ChangePasswordContainer_FindControl.aspx
@@ -0,0 +1,27 @@
+<%@ Page Language="C#" CodeFile="MyPage.aspx.cs" Inherits="MyPage" %>
+<html><head><title>Change password</title></head>
+<body>
+  <form runat="server">
+    Test: <asp:Label runat="server" id="test"/><br/>
+    <asp:ChangePassword ID="ChangePassword1" runat="server">
+      <ChangePasswordTemplate>
+	<table>
+	  <tr>
+	    <td>
+	      <asp:TextBox runat="server" id="CurrentPassword" TextMode="Password"/>
+	      <asp:RequiredFieldValidator runat="server" id="text1required" ControlToValidate="CurrentPassword"/>
+	    </td>
+	  </tr>
+
+	  <tr>
+	    <td>
+	      <asp:TextBox runat="server" id="NewPassword" TextMode="Password"/>
+	      <asp:RequiredFieldValidator runat="server" id="text2required" ControlToValidate="NewPassword"/>
+	    </td>
+	  </tr>
+	</table>
+      </ChangePasswordTemplate>
+    </asp:ChangePassword>
+  </form>
+</body>
+</html>
diff --git a/mcs/class/System.Web/Test/mainsoft/NunitWebResources/NestedParserFileText.aspx b/mcs/class/System.Web/Test/mainsoft/NunitWebResources/NestedParserFileText.aspx
new file mode 100644
index 0000000..b7c07e9
--- /dev/null
+++ b/mcs/class/System.Web/Test/mainsoft/NunitWebResources/NestedParserFileText.aspx
@@ -0,0 +1,25 @@
+<%@ Page Language="C#" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+<head>
+	<title>Bug #526286</title>
+</head>
+<body>
+	<form id="form1" runat="server">
+	<h1>Test</h1>
+					<!--
+						<div style="color:red; margin:30px; clear:both; font-size:30px">
+							Извините, но Ваш браузер устарел, мешает прогрессу, и система Tercio.CMS под него не адаптирована.<br>
+							Установите <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=9ae91ebe-3385-447c-8a30-081805b2f90b&displaylang=en" title="скачать IE7">последнюю</a> версию браузера от Microsoft,
+							или попробуйте другие достйные (мнение проффесионалов - лучшие) альтернативы:
+							<ul style="margin-left:50px; margin-bottom:20px;">
+								<li><a href="http://mozilla.ru/">Mozilla FireFox</a></li>
+								<li><a href="http://opera.com/">Opera</a></li>
+								<li><a href="http://www.apple.com/safari/download/">Сафари</a></li>
+							</ul>
+						</div>
+					-->
+	<p>Test test test</p>
+	</form>
+</body>
+</html>
\ No newline at end of file
diff --git a/mcs/class/System.Web/Test/mainsoft/NunitWebResources/StateFormatter_CollectionConverter.aspx b/mcs/class/System.Web/Test/mainsoft/NunitWebResources/StateFormatter_CollectionConverter.aspx
new file mode 100644
index 0000000..22f5452
--- /dev/null
+++ b/mcs/class/System.Web/Test/mainsoft/NunitWebResources/StateFormatter_CollectionConverter.aspx
@@ -0,0 +1,89 @@
+<%@ Page Language="C#" AutoEventWireup="true" CodeFile="StateFormatter_CollectionConverter.aspx.cs" Inherits="Sections_ECCN_test" Title="ECCN Finder" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" >
+<head id="Head1" runat="server"></head>
+<body>
+    <form id="form1" runat="server">
+<asp:ObjectDataSource runat="server" ID="odsYear" 
+    TypeName="App.Test.ECCN" 
+    SelectMethod="GetECCNYearList" />
+<asp:ObjectDataSource runat="server" ID="odsECCNSummary"
+    TypeName="App.Test.ECCN"
+    SelectMethod="GetECCNSummaryWithFilter"
+    SelectCountMethod="GetECCNSummaryCountWithFilter"
+    EnablePaging="true">
+        <SelectParameters>
+             <asp:ControlParameter ControlID="ddlDate" Name="year" Type="Int32" />
+             <asp:ControlParameter ControlID="txtSearchValue" Name="eccn" Type="String" />
+        </SelectParameters>
+</asp:ObjectDataSource>
+<asp:Panel runat="server" ID="pnlModule">   
+    <table cellpadding="3" cellspacing="0" border="0">
+        <tr>
+            <td width="1px"></td>
+            <td></td>
+        </tr>
+        <tr>
+            <td></td>
+            <td valign="top">
+                    <table cellpadding="1" cellspacing="0" width="355px" border="0">
+                        <tr>
+                            <td colspan="3" style="height:12px;"></td>
+                        </tr>
+                        <tr>
+                            <td>Date Filter</td>
+                            <td colspan="2">Enter a Schedule B or ECCN Code:</td>
+                        </tr>
+                        <tr>
+                            <td><asp:DropDownList runat="server" ID="ddlDate" CssClass="ddlECCN" DataSourceID="odsYear" DataTextField="yearText" DataValueField="year"></asp:DropDownList></td>
+                            <td style="width:190px;"><asp:TextBox runat="server" ID="txtSearchValue" MaxLength="14" Width="180px" /></td>
+                            <td align="left"><asp:Button runat="server" ID="btnSearch" Text="Search" OnClick="btnSearch_Click" /></td>
+                        </tr>
+                        <tr>
+                            <td colspan="3" style="height:3px;"></td>
+                        </tr>
+                    </table>
+                        <table cellpadding="0" cellspacing="0" border="0" >
+                            <tr>
+                                <td>
+                                    <div style="margin: 5px;">
+                                        <%= MonoTests.stand_alone.WebHarness.HtmlDiff.BEGIN_TAG %><asp:GridView ID="gvECCN" runat="server" DataSourceID="odsECCNSummary" 
+                                                    AutoGenerateColumns="false" AllowPaging="true" Visible="false" PageSize="10" 
+                                                    PagerStyle-HorizontalAlign="Center" >
+                                            <Columns>
+                                                <asp:BoundField DataField="rownum" HeaderText="" SortExpression="rownum">
+                                                    <HeaderStyle HorizontalAlign="Left" />
+                                                    <ItemStyle Width="30px" Height="18" />
+                                                </asp:BoundField>
+                                                <asp:BoundField DataField="sched_b" HeaderText="Schedule B" SortExpression="sched_b" >
+                                                    <HeaderStyle HorizontalAlign="Left" />
+                                                    <ItemStyle Width="140px" />
+                                                </asp:BoundField>
+                                                <asp:BoundField DataField="count" HeaderText="Count" SortExpression="count" DataFormatString="{0:###,###,###}">
+                                                    <HeaderStyle HorizontalAlign="Left" />
+                                                    <ItemStyle Width="90px" />
+                                                </asp:BoundField>
+                                                <asp:BoundField DataField="total" HeaderText="Total" SortExpression="total" DataFormatString="{0:###,###,###}">
+                                                    <HeaderStyle HorizontalAlign="Left" />
+                                                    <ItemStyle Width="100px" />
+                                                </asp:BoundField>
+                                                <asp:BoundField DataField="percent" HeaderText="Percent" SortExpression="percent" DataFormatString="{0:P}">
+                                                    <HeaderStyle HorizontalAlign="Left" />
+                                                    <ItemStyle Width="90px" />
+                                                </asp:BoundField>
+                                            </Columns>
+                                        </asp:GridView><%= MonoTests.stand_alone.WebHarness.HtmlDiff.END_TAG %>
+                                    </div>
+                                </td>
+                             </tr>
+                        </table>
+            </td>
+        </tr>
+        <tr>
+            <td colspan="2" height="15px"></td>
+        </tr>
+    </table>
+</asp:Panel>
+ </form> 
+</body>
+</html>
diff --git a/mcs/class/System.Web/Test/mainsoft/NunitWebResources/StateFormatter_CollectionConverter.aspx.cs b/mcs/class/System.Web/Test/mainsoft/NunitWebResources/StateFormatter_CollectionConverter.aspx.cs
new file mode 100644
index 0000000..7528180
--- /dev/null
+++ b/mcs/class/System.Web/Test/mainsoft/NunitWebResources/StateFormatter_CollectionConverter.aspx.cs
@@ -0,0 +1,178 @@
+using System;
+using System.Data;
+using System.Configuration;
+using System.Collections;
+using System.Collections.Generic;
+using System.Net;
+using System.Net.Mail;
+using System.Text;
+using System.Web;
+using System.Web.Security;
+using System.Web.UI;
+using System.Web.UI.WebControls;
+using System.Web.UI.WebControls.WebParts;
+using System.Web.UI.HtmlControls;
+
+using MonoTests.SystemWeb.Framework;
+
+public partial class Sections_ECCN_test : System.Web.UI.Page
+{
+	//protected override void OnPreInit (EventArgs e)
+	public Sections_ECCN_test ()
+	{
+		WebTest t = WebTest.CurrentTest;
+		if (t != null)
+			t.Invoke (this);
+	}
+		
+	public override void VerifyRenderingInServerForm (Control c)
+	{
+
+	}
+
+    protected void Page_Load(object sender, EventArgs e)
+    {
+    }
+
+    protected void btnSearch_Click(object sender, System.EventArgs e)
+    {
+
+        gvECCN.Visible = true;
+    }
+
+}
+
+namespace App.Test
+{
+
+    public class ECCNYearList
+    {
+
+        private Int32 _year = 0;
+        public Int32 year
+        {
+            get { return _year; }
+            set { _year = value; }
+        }
+
+        private String _yearText = "";
+        public String yearText
+        {
+            get { return _yearText; }
+            set { _yearText = value; }
+        }
+
+        public ECCNYearList() { }
+
+        public ECCNYearList(Int32 p_year) { year = p_year; yearText = p_year.ToString(); }
+    }
+
+    /// <summary>
+    /// Class to get a list of US States
+    /// </summary>
+    [Serializable]
+    public class ECCN
+    {
+        #region Public/Private properties
+
+        private Int32 _year = 0;
+        public Int32 year
+        {
+            get { return _year; }
+            set { _year = value; }
+        }
+
+        private String _eccn = "";
+        public String eccn
+        {
+            get { return _eccn; }
+            set { _eccn = value; }
+        }
+
+        private String _sched_b = "";
+        public String sched_b
+        {
+            get { return _sched_b; }
+            set { _sched_b = value; }
+        }
+
+        private Int32 _count = 0;
+        public Int32 count
+        {
+            get { return _count; }
+            set { _count = value; }
+        }
+
+        private Double _percent = 0.0;
+        public Double percent
+        {
+            get { return _percent; }
+            set { _percent = value; }
+        }
+
+        private Int32 _rownum = 0;
+        public Int32 rownum
+        {
+            get { return _rownum; }
+            set { _rownum = value; }
+        }
+
+        private Int32 _total = 0;
+        public Int32 total
+        {
+            get { return _total; }
+            set { _total = value; }
+        }
+
+        #endregion
+
+        #region Constructors
+
+        public ECCN() { }
+
+        public ECCN(Int32 p_year, String p_eccn, String p_sched_b, Int32 p_count, Double p_percent, Int32 p_rownum, Int32 p_total)
+        {
+        
+            year = p_year;
+            eccn = p_eccn.Trim().ToUpper();
+            sched_b = p_sched_b.Trim();
+            count = p_count;
+            percent = p_percent;
+            rownum = p_rownum;
+            total = p_total;
+        }
+
+        #endregion
+
+        public static List<ECCN> GetECCNSummaryWithFilter(Int32 startRowIndex, Int32 maximumRows, Int32 year,  String eccn)
+        {
+
+            List<ECCN> summary = new List<ECCN>();
+
+            summary.Add(new ECCN(2009, "test", "test", 1, 2.5, 1, 100));
+
+            return summary;
+
+        }
+
+        public static Int32 GetECCNSummaryCountWithFilter(Int32 year, String eccn)
+        { 
+            return 1;
+        }
+
+
+        public static List<ECCNYearList> GetECCNYearList()
+        {
+
+            List<ECCNYearList> result = new List<ECCNYearList>();
+
+            result.Add(new ECCNYearList(2009));
+            result.Add(new ECCNYearList(2008));
+            return result;
+
+        }
+
+    }
+
+}
+
diff --git a/mcs/class/System.Web/Test/mainsoft/NunitWebResources/StateFormatter_CorrectConverter.aspx b/mcs/class/System.Web/Test/mainsoft/NunitWebResources/StateFormatter_CorrectConverter.aspx
new file mode 100644
index 0000000..222018c
--- /dev/null
+++ b/mcs/class/System.Web/Test/mainsoft/NunitWebResources/StateFormatter_CorrectConverter.aspx
@@ -0,0 +1,37 @@
+<%@ Page Language="C#" Debug="true"  AutoEventWireup="true" CodeFile="MyPage.aspx.cs" Inherits="MyPage" %>
+<%@ Register Namespace="Samples.AspNet.CS.Controls" Assembly="System.Web_test_net_2_0" TagPrefix="aspSample" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<script runat="server">
+  void Button_Click(object sender, EventArgs e)
+  {
+    Book1.Author.FirstName = "Bob";
+    Book1.Author.LastName = "Kelly";
+    Book1.Title = "Contoso Stories";
+    Book1.Price = 39.95M;
+    Button1.Visible = false;
+  }  
+</script>
+<html xmlns="http://www.w3.org/1999/xhtml">
+  <head id="Head1" runat="server">
+    <title>Bug #545979</title>
+  </head>
+  <body>
+    <form id="Form1" runat="server">
+      <aspSample:Book ID="Book1" Runat="server"  
+        Title="Tailspin Toys Stories" CurrencySymbol="$" 
+        BackColor="#FFE0C0" Font-Names="Tahoma" 
+        Price="16" BookType="Fiction">
+        <Author FirstName="Judy" LastName="Lew" />
+      </aspSample:Book>
+      <br />
+      <asp:Button ID="Button1" OnClick="Button_Click" 
+        Runat="server" Text="Change" />
+      <asp:Button ID="Button2" Runat="server" Text="Refresh" />
+      <br />
+      <br />
+      <asp:HyperLink ID="Hyperlink1" NavigateUrl="BookTest.aspx" 
+        Runat="server">
+        Reload Page</asp:HyperLink>
+    </form>
+  </body>
+</html>
diff --git a/mcs/class/System.Web/Test/mainsoft/NunitWebResources/TagWithExpressionWithinAttribute.aspx b/mcs/class/System.Web/Test/mainsoft/NunitWebResources/TagWithExpressionWithinAttribute.aspx
new file mode 100644
index 0000000..15da25f
--- /dev/null
+++ b/mcs/class/System.Web/Test/mainsoft/NunitWebResources/TagWithExpressionWithinAttribute.aspx
@@ -0,0 +1,21 @@
+<%@ Page Language="C#" AutoEventWireup="true" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<script runat="server">
+	void Page_Load (object sender, EventArgs e)
+	{
+//		Literal2.Text = "Test";
+	}
+</script>
+<html xmlns="http://www.w3.org/1999/xhtml" >
+<head runat="server">
+    <title>Bug #568631</title>
+</head>
+<body>
+    <form id="form1" runat="server">
+    <div>
+        <img alt='<asp:Literal ID="Literal2" runat="server" text="<%$Resources:Resource1, TestString  %>"/>' src="../images/ok_16x16.png" />
+            
+    </div>
+    </form>
+</body>
+</html>
\ No newline at end of file
diff --git a/mcs/class/System/System.Net.Mail/ChangeLog b/mcs/class/System/System.Net.Mail/ChangeLog
index 3d5e7d2..8e47db2 100644
--- a/mcs/class/System/System.Net.Mail/ChangeLog
+++ b/mcs/class/System/System.Net.Mail/ChangeLog
@@ -1,3 +1,9 @@
+2010-01-21 Gonzalo Paniagua Javier <gonzalo at novell.com>
+
+	* SmtpClient.cs: rethrow inner exception so that
+	AsyncCompletedEventArgs.Error gets the right value on error. Patch
+	by Dimitar Dobrev.
+
 2009-08-20  Sebastien Pouliot  <sebastien at ximian.com>
 
 	* SmtpClient.cs: Honor ServicePointManager.
diff --git a/mcs/class/System/System.Net.Mail/SmtpClient.cs b/mcs/class/System/System.Net.Mail/SmtpClient.cs
index 62fd6e3..67dcc50 100644
--- a/mcs/class/System/System.Net.Mail/SmtpClient.cs
+++ b/mcs/class/System/System.Net.Mail/SmtpClient.cs
@@ -749,6 +749,7 @@ namespace System.Net.Mail {
 					Send (message);
 				} catch (Exception ex) {
 					ea.Result = ex;
+					throw ex;
 				}
 			};
 			worker.WorkerSupportsCancellation = true;
diff --git a/mcs/class/System/System.Net/ChangeLog b/mcs/class/System/System.Net/ChangeLog
index a02abd7..1c482a4 100644
--- a/mcs/class/System/System.Net/ChangeLog
+++ b/mcs/class/System/System.Net/ChangeLog
@@ -1,3 +1,24 @@
+2010-01-21  Sebastien Pouliot  <sebastien at ximian.com>
+
+	* CookieContainer.cs: Fix to cloning and expiration. Patch
+	by Tom Philpot <tom.philpot at logos.com>
+	[Backport r149976 + NET_1_1 fixes]
+
+2010-01-13 Gonzalo Paniagua Javier <gonzalo at novell.com>
+
+	* HttpWebRequest.cs: when the server returns several different
+	authentication methods, pick the one that works.
+	Fixes bug #562043.
+
+2009-12-24  Sebastien Pouliot  <sebastien at ximian.com>
+
+	* Cookie.cs: Re-work ToString to be useable in more cases. Fix
+	some issues found by Gendarme.
+	* CookieContainer.cs: Fix 2.0 NonWorking (and new) unit tests.
+	Implement removing oldest cookies when limits are reached.
+	* CookieCollection.cs: Fix sort to be closer to MS implementation
+	(but still not 100% identical). Fix some issues found by Gendarme
+
 2009-10-23  Alexandre Gomes  <alexmipego at gmail.com>
 
 	* WebClient.cs: Fixed GetWebRequest overriding problems, bug: 
diff --git a/mcs/class/System/System.Net/Cookie.cs b/mcs/class/System/System.Net/Cookie.cs
index 02bd572..937df8d 100644
--- a/mcs/class/System/System.Net/Cookie.cs
+++ b/mcs/class/System/System.Net/Cookie.cs
@@ -5,8 +5,9 @@
 // 	Lawrence Pit (loz at cable.a2000.nl)
 //	Gonzalo Paniagua Javier (gonzalo at ximian.com)
 //      Daniel Nauck    (dna(at)mono-project(dot)de)
+//	Sebastien Pouliot  <sebastien at ximian.com>
 //
-// (c) Copyright 2004 Novell, Inc. (http://www.ximian.com)
+// Copyright (C) 2004,2009 Novell, Inc (http://www.novell.com)
 //
 
 //
@@ -48,11 +49,10 @@ namespace System.Net {
 		Uri commentUri;
 		bool discard;
 		string domain;
-//		bool expired;
 		DateTime expires;
-#if NET_2_0		
+#if NET_2_0
 		bool httpOnly;
-#endif		
+#endif
 		string name;
 		string path;
 		string port;
@@ -70,11 +70,11 @@ namespace System.Net {
 		{
 			expires = DateTime.MinValue;
 			timestamp = DateTime.Now;
-			domain = "";
-			name = "";
-			val = "";
-			comment = "";
-			port = "";
+			domain = String.Empty;
+			name = String.Empty;
+			val = String.Empty;
+			comment = String.Empty;
+			port = String.Empty;
 		}
 
 		public Cookie (string name, string value)
@@ -113,7 +113,22 @@ namespace System.Net {
 
 		public string Domain {
 			get { return domain; }
-			set { domain = value == null ? String.Empty : value; }
+			set {
+				if (IsNullOrEmpty (value)) {
+					domain = String.Empty;
+					ExactDomain = true;
+				} else {
+					domain = value;
+					ExactDomain = (value [0] != '.');
+				}
+			}
+		}
+
+		private bool exact_domain;
+
+		internal bool ExactDomain { 
+			get { return exact_domain; }
+			set { exact_domain = value; }
 		}
 
 		public bool Expired {
@@ -131,21 +146,17 @@ namespace System.Net {
 			get { return expires; }
 			set { expires = value; }
 		}
-
-#if NET_2_0	
-		public bool HttpOnly
-		{
+#if NET_2_0
+		public bool HttpOnly {
 			get { return httpOnly; }
 			set { httpOnly = value; }
 		}
 #endif
-
 		public string Name {
 			get { return name; }
 			set { 
-				if (value == null || value.Length == 0) {
+				if (IsNullOrEmpty (value))
 					throw new CookieException ("Name cannot be empty");
-				}			
 				
 				if (value [0] == '$' || value.IndexOfAny (reservedCharsName) != -1) {
 					// see CookieTest, according to MS implementation
@@ -159,14 +170,14 @@ namespace System.Net {
 		}
 
 		public string Path {
-			get { return (path == null || path == "") ? String.Empty : path; }
+			get { return (path == null) ? String.Empty : path; }
 			set { path = (value == null) ? String.Empty : value; }
 		}
 
 		public string Port {
 			get { return port; }
 			set { 
-				if (value == null || value.Length == 0) {
+				if (IsNullOrEmpty (value)) {
 					port = String.Empty;
 					return;
 				}
@@ -265,6 +276,11 @@ namespace System.Net {
 		// see also bug #316017
 		public override string ToString () 
 		{
+			return ToString (null);
+		}
+
+		internal string ToString (Uri uri)
+		{
 			if (name.Length == 0) 
 				return String.Empty;
 
@@ -278,10 +294,13 @@ namespace System.Net {
 			if (version == 0)
 				return result.ToString ();
 
-			if (path != null && path.Length != 0)
+			if (!IsNullOrEmpty (path))
 				result.Append ("; $Path=").Append (path);
-				
-			if (domain != null && domain.Length != 0)
+			else if (uri != null)
+				result.Append ("; $Path=/").Append (path);
+
+			bool append_domain = (uri == null) || (uri.Host != domain);
+			if (append_domain && !IsNullOrEmpty (domain))
 				result.Append ("; $Domain=").Append (domain);			
 	
 			if (port != null && port.Length != 0)
@@ -333,6 +352,11 @@ namespace System.Net {
 			}
 			return true;
 	    	}	    
+
+		static bool IsNullOrEmpty (string s)
+		{
+			return ((s == null) || (s.Length == 0));
+		}
 	}
 }
 
diff --git a/mcs/class/System/System.Net/CookieCollection.cs b/mcs/class/System/System.Net/CookieCollection.cs
index a7528bd..bed862b 100644
--- a/mcs/class/System/System.Net/CookieCollection.cs
+++ b/mcs/class/System/System.Net/CookieCollection.cs
@@ -4,8 +4,9 @@
 // Authors:
 // 	Lawrence Pit (loz at cable.a2000.nl)
 //	Gonzalo Paniagua Javier (gonzalo at ximian.com)
+//	Sebastien Pouliot  <sebastien at ximian.com>
 //
-// (c) Copyright 2004 Novell, Inc. (http://www.novell.com)
+// Copyright (C) 2004,2009 Novell, Inc (http://www.novell.com)
 //
 
 //
@@ -29,35 +30,64 @@
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
 //
 
-using System;
 using System.Collections;
 using System.Globalization;
 using System.Runtime.Serialization;
+#if NET_2_0
+using System.Collections.Generic;
+#endif
 
 namespace System.Net 
 {
 	[Serializable]
-	public class CookieCollection : ICollection, IEnumerable
-	{
-		class CookieCollectionPathComparer : IComparer
-		{
-			int IComparer.Compare (object p1, object p2)
+#if NET_2_1
+	public sealed class CookieCollection : ICollection, IEnumerable {
+#else
+	public class CookieCollection : ICollection, IEnumerable {
+#endif
+		// not 100% identical to MS implementation
+#if NET_2_0
+		sealed class CookieCollectionComparer : IComparer<Cookie> {
+			public int Compare (Cookie x, Cookie y)
 			{
-				Cookie c1 = p1 as Cookie;
-				Cookie c2 = p2 as Cookie;
+				if (x == null || y == null)
+					return 0;
+				
+				int c1 = x.Name.Length + x.Value.Length;
+				int c2 = y.Name.Length + y.Value.Length;
+
+				return (c1 - c2);
+			}
+		}
+
+		List<Cookie> list = new List<Cookie> ();
 
-				if (c1 == null || c2 == null)
+		internal IList<Cookie> List {
+			get { return list; }
+		}
+#else
+		sealed class CookieCollectionComparer : IComparer {
+			public int Compare (object x, object y)
+			{
+				if (x == null || y == null)
 					return 0;
 				
-				return (c2.Path.Length - c1.Path.Length);
+				Cookie c1 = (Cookie) x;
+				Cookie c2 = (Cookie) y;
+
+				return (c1.Name.Length + c1.Value.Length - c2.Name.Length - c2.Value.Length);
 			}
 		}
-		
-		ArrayList list = new ArrayList (4);
 
-		internal ArrayList List {
+		ArrayList list = new ArrayList ();
+
+		internal IList List {
 			get { return list; }
 		}
+#endif
+
+		static CookieCollectionComparer Comparer = new CookieCollectionComparer ();
+
 		// ICollection
 		public int Count {
 			get { return list.Count; }
@@ -71,17 +101,15 @@ namespace System.Net
 			get { return this; }
 		}
 
-		public void CopyTo (Array array, int arrayIndex)
+		public void CopyTo (Array array, int index)
 		{
-			list.CopyTo (array, arrayIndex);
+			(list as IList).CopyTo (array, index);
 		}
 
-#if NET_2_0
 		public void CopyTo (Cookie [] array, int index)
 		{
 			list.CopyTo (array, index);
 		}
-#endif
 
 		// IEnumerable
 		public IEnumerator GetEnumerator ()
@@ -110,12 +138,10 @@ namespace System.Net
 				list [pos] = cookie;
 		}
 
-		internal void SortByPath ()
+		internal void Sort ()
 		{
-			if (list == null || list.Count == 0)
-				return;
-
-			list.Sort (new CookieCollectionPathComparer ());
+			if (list.Count > 0)
+				list.Sort (Comparer);
 		}
 		
 		int SearchCookie (Cookie cookie)
diff --git a/mcs/class/System/System.Net/CookieContainer.cs b/mcs/class/System/System.Net/CookieContainer.cs
index 846c0c5..4f126fb 100644
--- a/mcs/class/System/System.Net/CookieContainer.cs
+++ b/mcs/class/System/System.Net/CookieContainer.cs
@@ -4,10 +4,11 @@
 // Authors:
 // 	Lawrence Pit (loz at cable.a2000.nl)
 //	Gonzalo Paniagua Javier (gonzalo at ximian.com)
+//	Sebastien Pouliot  <sebastien at ximian.com>
 //
 // (c) 2003 Ximian, Inc. (http://www.ximian.com)
 // (c) Copyright 2004 Ximian, Inc. (http://www.ximian.com)
-//
+// Copyright (C) 2009 Novell, Inc (http://www.novell.com)
 
 //
 // Permission is hereby granted, free of charge, to any person obtaining
@@ -35,18 +36,20 @@ using System.Collections;
 using System.Globalization;
 using System.Runtime.Serialization;
 using System.Text;
+using System.Text.RegularExpressions;
 
 namespace System.Net 
 {
 	[Serializable]
-	[MonoTODO ("Need to remove older/unused cookies if it reaches the maximum capacity")]
-	public class CookieContainer
-	{
+#if NET_2_1
+	public sealed class CookieContainer {
+#else
+	public class CookieContainer {
+#endif
 		public const int DefaultCookieLengthLimit = 4096;
 		public const int DefaultCookieLimit = 300;
 		public const int DefaultPerDomainCookieLimit = 20;
 
-		int count;
 		int capacity = DefaultCookieLimit;
 		int perDomainCapacity = DefaultPerDomainCookieLimit;
 		int maxCookieSize = DefaultCookieLengthLimit;
@@ -60,7 +63,11 @@ namespace System.Net
 		public CookieContainer (int capacity)
 		{
 			if (capacity <= 0)
-				throw new ArgumentException ("Must be greater than zero", "capacity");
+#if NET_2_0
+				throw new ArgumentException ("Must be greater than zero", "Capacity");
+#else
+				throw new ArgumentException ("Capacity");
+#endif
 
 			this.capacity = capacity;
 		}
@@ -69,10 +76,21 @@ namespace System.Net
 			: this (capacity)
 		{
 			if (perDomainCapacity != Int32.MaxValue && (perDomainCapacity <= 0 || perDomainCapacity > capacity))
-				throw new ArgumentException ("Invalid value", "perDomaniCapacity");
+#if NET_2_0
+				throw new ArgumentOutOfRangeException ("perDomainCapacity",
+					string.Format ("PerDomainCapacity must be " +
+					"greater than {0} and less than {1}.", 0,
+					capacity));
+#else
+				throw new ArgumentException ("PerDomainCapacity");
+#endif
 
 			if (maxCookieSize <= 0)
-				throw new ArgumentException ("Must be greater than zero", "maxCookieSize");
+#if NET_2_0
+				throw new ArgumentException ("Must be greater than zero", "MaxCookieSize");
+#else
+				throw new ArgumentException ("MaxCookieSize");
+#endif
 
 			this.perDomainCapacity = perDomainCapacity;
 			this.maxCookieSize = maxCookieSize;
@@ -81,19 +99,18 @@ namespace System.Net
 		// properties
 		
 		public int Count { 
-			get { return count; }
+			get { return (cookies == null) ? 0 : cookies.Count; }
 		}
 		
 		public int Capacity {
 			get { return capacity; }
 			set { 
 				if (value < 0 || (value < perDomainCapacity && perDomainCapacity != Int32.MaxValue))
-					throw new ArgumentOutOfRangeException ("value");
-
-				if (value < maxCookieSize)
-					maxCookieSize = value;
-
-				capacity = value;							
+					throw new ArgumentOutOfRangeException ("value",
+						string.Format ("Capacity must be greater " +
+						"than {0} and less than {1}.", 0,
+						perDomainCapacity));
+				capacity = value;
 			}
 		}
 		
@@ -101,7 +118,7 @@ namespace System.Net
 			get { return maxCookieSize; }
 			set {
 				if (value <= 0)
-					throw new ArgumentOutOfRangeException ("value");				
+					throw new ArgumentOutOfRangeException ("value");
 				maxCookieSize = value;
 			}
 		}
@@ -110,8 +127,7 @@ namespace System.Net
 			get { return perDomainCapacity; }
 			set {
 				if (value != Int32.MaxValue && (value <= 0 || value > capacity))
-					throw new ArgumentOutOfRangeException ("value");					
-
+					throw new ArgumentOutOfRangeException ("value");
 				perDomainCapacity = value;
 			}
 		}
@@ -121,13 +137,26 @@ namespace System.Net
 			if (cookie == null)
 				throw new ArgumentNullException ("cookie");
 
-			if (cookie.Domain == "")
-				throw new ArgumentException ("Cookie domain not set.", "cookie");
+			if (cookie.Domain.Length == 0)
+#if NET_2_0
+				throw new ArgumentException ("Cookie domain not set.", "cookie.Domain");
+#else
+				throw new ArgumentException ("cookie.Domain");
+#endif
 
 			if (cookie.Value.Length > maxCookieSize)
 				throw new CookieException ("value is larger than MaxCookieSize.");
 
-			AddCookie (cookie);
+			// .NET's Add (Cookie) is fundamentally broken and does not copy properties
+			// like Secure, HttpOnly and Expires so we clone the parts that .NET
+			// does keep before calling AddCookie
+			Cookie c = new Cookie (cookie.Name, cookie.Value);
+			c.Path = (cookie.Path.Length == 0) ? "/" : cookie.Path;
+			c.Domain = cookie.Domain;
+			c.ExactDomain = cookie.ExactDomain;
+			c.Version = cookie.Version;
+			
+			AddCookie (c);
 		}
 
 		void AddCookie (Cookie cookie)
@@ -135,37 +164,69 @@ namespace System.Net
 			if (cookies == null)
 				cookies = new CookieCollection ();
 
-			if (count + 1 > capacity)
-				throw new CookieException ("Capacity exceeded");
+			if (cookies.Count >= capacity)
+				RemoveOldest (null);
+
+			// try to avoid counting per-domain
+			if (cookies.Count >= perDomainCapacity) {
+				if (CountDomain (cookie.Domain) >= perDomainCapacity)
+					RemoveOldest (cookie.Domain);
+			}
 
-			cookies.Add (cookie);
-			count = cookies.Count;
+			// clone the important parts of the cookie
+			Cookie c = new Cookie (cookie.Name, cookie.Value);
+			c.Path = (cookie.Path.Length == 0) ? "/" : cookie.Path;
+			c.Domain = cookie.Domain;
+			c.ExactDomain = cookie.ExactDomain;
+			c.Version = cookie.Version;
+			c.Expires = cookie.Expires;
+			c.CommentUri = cookie.CommentUri;
+			c.Comment = cookie.Comment;
+			c.Discard = cookie.Discard;
+#if NET_2_0
+			c.HttpOnly = cookie.HttpOnly;
+#endif
+			c.Secure = cookie.Secure;
+
+			cookies.Add (c);
 			CheckExpiration ();
 
 		}
 
+		int CountDomain (string domain)
+		{
+			int count = 0;
+			foreach (Cookie c in cookies) {
+				if (CheckDomain (domain, c.Domain, true))
+					count++;
+			}
+			return count;
+		}
+
+		void RemoveOldest (string domain)
+		{
+			int n = 0;
+			DateTime oldest = DateTime.MaxValue;
+			for (int i = 0; i < cookies.Count; i++) {
+				Cookie c = cookies [i];
+				if ((c.TimeStamp < oldest) && ((domain == null) || (domain == c.Domain))) {
+					oldest = c.TimeStamp;
+					n = i;
+				}
+			}
+			cookies.List.RemoveAt (n);
+		}
+
 		// Only needs to be called from AddCookie (Cookie) and GetCookies (Uri)
 		void CheckExpiration ()
 		{
 			if (cookies == null)
 				return;
 
-			ArrayList removed = null;
 			for (int i = cookies.Count - 1; i >= 0; i--) {
 				Cookie cookie = cookies [i];
-				if (cookie.Expired) {
-					if (removed == null)
-						removed = new ArrayList ();
-					removed.Add (i);
-				}
-			}
-
-			if (removed != null) {
-				// We went backwards above, so this works.
-				ArrayList list = cookies.List;
-				foreach (int n in removed) {
-					list.RemoveAt (n);
-				}
+				if (cookie.Expired)
+					cookies.List.RemoveAt (i);
 			}
 		}
 
@@ -180,16 +241,16 @@ namespace System.Net
 
 		void Cook (Uri uri, Cookie cookie)
 		{
-			if (cookie.Name == null || cookie.Name == "")
+			if (IsNullOrEmpty (cookie.Name))
 				throw new CookieException ("Invalid cookie: name");
 
 			if (cookie.Value == null)
 				throw new CookieException ("Invalid cookie: value");
 
-			if (uri != null && cookie.Domain == "")
+			if (uri != null && cookie.Domain.Length == 0)
 				cookie.Domain = uri.Host;
 
-			if (cookie.Version == 0 && (cookie.Path == null || cookie.Path == "")) {
+			if (cookie.Version == 0 && IsNullOrEmpty (cookie.Path)) {
 				if (uri != null) {
 					cookie.Path = uri.AbsolutePath;
 				} else {
@@ -197,7 +258,7 @@ namespace System.Net
 				}
 			}
 
-			if (cookie.Port == "" && uri != null && !uri.IsDefaultPort) {
+			if (cookie.Port.Length == 0 && uri != null && !uri.IsDefaultPort) {
 				cookie.Port = "\"" + uri.Port.ToString () + "\"";
 			}
 		}
@@ -210,8 +271,10 @@ namespace System.Net
 			if (cookie == null)
 				throw new ArgumentNullException ("cookie");
 
-			Cook (uri, cookie);
-			AddCookie (cookie);
+			if (!cookie.Expired) {
+				Cook (uri, cookie);
+				AddCookie (cookie);
+			}
 		}
 
 		public void Add (Uri uri, CookieCollection cookies)
@@ -222,9 +285,11 @@ namespace System.Net
 			if (cookies == null)
 				throw new ArgumentNullException ("cookies");
 
-			foreach (Cookie c in cookies) {
-				Cook (uri, c);
-				AddCookie (c);
+			foreach (Cookie cookie in cookies) {
+				if (!cookie.Expired) {
+					Cook (uri, cookie);
+					AddCookie (cookie);
+				}
 			}
 		}		
 
@@ -239,7 +304,9 @@ namespace System.Net
 
 			StringBuilder result = new StringBuilder ();
 			foreach (Cookie cookie in coll) {
-				result.Append (cookie.ToString ());
+				// don't include the domain since it can be infered from the URI
+				// include empty path as '/'
+				result.Append (cookie.ToString (uri));
 				result.Append ("; ");
 			}
 
@@ -249,26 +316,25 @@ namespace System.Net
 			return result.ToString ();
 		}
 
-		static bool CheckDomain (string domain, string host)
+		static bool CheckDomain (string domain, string host, bool exact)
 		{
-			if (domain == String.Empty)
-				return false;
-
-			int hlen = host.Length;
-			int dlen = domain.Length;
-			if (hlen < dlen)
+			if (domain.Length == 0)
 				return false;
 
-			if (hlen == dlen)
-				return (String.Compare (domain, host, true, CultureInfo.InvariantCulture) == 0);
+			if (exact)
+				return (String.Compare (host, domain, true, CultureInfo.InvariantCulture) == 0);
 
-			if (domain [0] != '.') {
-				domain = "." + domain;
-				dlen++;
-			}
+			// check for allowed sub-domains - without string allocations
+			if (!CultureInfo.InvariantCulture.CompareInfo.IsSuffix (host, domain, CompareOptions.IgnoreCase))
+				return false;
 
-			string subdomain = host.Substring (hlen - dlen);
-			return (String.Compare (subdomain, domain, true, CultureInfo.InvariantCulture) == 0);
+			// mono.com -> www.mono.com is OK but supermono.com NOT OK
+			if (domain [0] == '.')
+				return true;
+			int p = host.Length - domain.Length - 1;
+			if (p < 0)
+				return false;
+			return (host [p] == '.');
 		}
 
 		public CookieCollection GetCookies (Uri uri)
@@ -283,10 +349,10 @@ namespace System.Net
 
 			foreach (Cookie cookie in cookies) {
 				string domain = cookie.Domain;
-				if (!CheckDomain (domain, uri.Host))
+				if (!CheckDomain (domain, uri.Host, cookie.ExactDomain))
 					continue;
 
-				if (cookie.Port != "" && cookie.Ports != null && uri.Port != -1) {
+				if (cookie.Port.Length > 0 && cookie.Ports != null && uri.Port != -1) {
 					if (Array.IndexOf (cookie.Ports, uri.Port) == -1)
 						continue;
 				}
@@ -310,7 +376,7 @@ namespace System.Net
 				coll.Add (cookie);
 			}
 
-			coll.SortByPath ();
+			coll.Sort ();
 			return coll;
 		}
 
@@ -320,120 +386,119 @@ namespace System.Net
 				throw new ArgumentNullException ("uri");
 			
 			if (cookieHeader == null)
-				throw new ArgumentNullException ("cookieHeader");
+				throw new ArgumentNullException ("cookieHeader");			
 			
-			ParseAndAddCookies (uri, cookieHeader);
-		}
-
-		// GetCookieValue, GetCookieName and ParseAndAddCookies copied from HttpRequest.cs
-		static string GetCookieValue (string str, int length, ref int i)
-		{
-			if (i >= length)
-				return null;
-
-			int k = i;
-			while (k < length && Char.IsWhiteSpace (str [k]))
-				k++;
-
-			int begin = k;
-			while (k < length && str [k] != ';')
-				k++;
-
-			i = k;
-			return str.Substring (begin, i - begin).Trim ();
-		}
+			if (cookieHeader.Length == 0)
+				return;
+			
+			// Cookies must be separated by ',' (like documented on MSDN)
+			// but expires uses DAY, DD-MMM-YYYY HH:MM:SS GMT, so simple ',' search is wrong.
+			// See http://msdn.microsoft.com/en-us/library/aa384321%28VS.85%29.aspx
+			string [] jar = cookieHeader.Split (',');
+			string tmpCookie;
+			for (int i = 0; i < jar.Length; i++) {
+				tmpCookie = jar [i];
+
+				if (jar.Length > i + 1
+					&& Regex.IsMatch (jar[i],
+						@".*expires\s*=\s*(Mon|Tue|Wed|Thu|Fri|Sat|Sun)",
+						RegexOptions.IgnoreCase) 
+					&& Regex.IsMatch (jar[i+1],
+						@"\s\d{2}-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-\d{4} \d{2}:\d{2}:\d{2} GMT",
+						RegexOptions.IgnoreCase)) {
+					tmpCookie = new StringBuilder (tmpCookie).Append (",").Append (jar [++i]).ToString ();
+				}
 
-		static string GetCookieName (string str, int length, ref int i)
-		{
-			if (i >= length)
-				return null;
+				try {
+					Cookie c = Parse (tmpCookie);
 
-			int k = i;
-			while (k < length && Char.IsWhiteSpace (str [k]))
-				k++;
+					// add default values from URI if missing from the string
+					if (c.Path.Length == 0) {
+						c.Path = uri.AbsolutePath;
+					} else if (!uri.AbsolutePath.StartsWith (c.Path)) {
+						string msg = String.Format ("'Path'='{0}' is invalid with URI", c.Path);
+						throw new CookieException (msg);
+					}
 
-			int begin = k;
-			while (k < length && str [k] != ';' &&  str [k] != '=')
-				k++;
+					if (c.Domain.Length == 0) {
+						c.Domain = uri.Host;
+						// don't consider domain "a.b.com" as ".a.b.com"
+						c.ExactDomain = true;
+					}
 
-			i = k + 1;
-			return str.Substring (begin, k - begin).Trim ();
+					AddCookie (c);
+				}
+				catch (Exception e) {
+					string msg = String.Format ("Could not parse cookies for '{0}'.", uri);
+					throw new CookieException (msg, e);
+				}
+			}
 		}
 
-		static string GetDir (string path)
-		{
-			if (path == null || path == "")
-				return "/";
-
-			int last = path.LastIndexOf ('/');
-			if (last == -1)
-				return "/" + path;
-
-			return path.Substring (0, last + 1);
-		}
-		
-		void ParseAndAddCookies (Uri uri, string header)
+		static Cookie Parse (string s)
 		{
-			if (header.Length == 0)
-				return;
+			string [] parts = s.Split (';');
+			Cookie c = new Cookie ();
+			for (int i = 0; i < parts.Length; i++) {
+				string key, value;
+				int sep = parts[i].IndexOf ('=');
+				if (sep == -1) {
+					key = parts [i].Trim ();
+					value = String.Empty;
+				} else {
+					key = parts [i].Substring (0, sep).Trim ();
+					value = parts [i].Substring (sep + 1).Trim ();
+				}
 
-			string [] name_values = header.Trim ().Split (';');
-			int length = name_values.Length;
-			Cookie cookie = null;
-			int pos;
-			CultureInfo inv = CultureInfo.InvariantCulture;
-			bool havePath = false;
-			bool haveDomain = false;
-
-			for (int i = 0; i < length; i++) {
-				pos = 0;
-				string name_value = name_values [i].Trim ();
-				string name = GetCookieName (name_value, name_value.Length, ref pos);
-				if (name == null || name == "")
-					throw new CookieException ("Name is empty.");
-
-				string value = GetCookieValue (name_value, name_value.Length, ref pos);
-				if (cookie != null) {
-					if (!havePath && String.Compare (name, "$Path", true, inv) == 0 ||
-					    String.Compare (name, "path", true, inv) == 0) {
-					    	havePath = true;
-						cookie.Path = value;
-						continue;
+				switch (key.ToLower (CultureInfo.InvariantCulture)) {
+				case "path":
+				case "$path":
+					if (c.Path.Length == 0)
+						c.Path = value;
+					break;
+				case "domain":
+				case "$domain":
+					if (c.Domain.Length == 0) {
+						c.Domain = value;
+						// here mono.com means "*.mono.com"
+						c.ExactDomain = false;
 					}
-					
-					if (!haveDomain && String.Compare (name, "$Domain", true, inv) == 0 ||
-				            String.Compare (name, "domain", true, inv) == 0) {
-						cookie.Domain = value;
-					    	haveDomain = true;
-						continue;
+					break;
+				case "expires":
+				case "$expires":
+					if (c.Expires == DateTime.MinValue) {
+#if NET_2_0
+						c.Expires = DateTime.SpecifyKind (DateTime.ParseExact (value,
+							@"ddd, dd-MMM-yyyy HH:mm:ss G\MT", CultureInfo.InvariantCulture), DateTimeKind.Utc);
+#else
+						c.Expires = DateTime.ParseExact (value, @"ddd, dd-MMM-yyyy HH:mm:ss G\MT", 
+							CultureInfo.InvariantCulture).ToUniversalTime ();
+#endif
 					}
-
-					if (!havePath)
-						cookie.Path = GetDir (uri.AbsolutePath);
-
-					if (!haveDomain)
-						cookie.Domain = uri.Host;
-
-					havePath = false;
-					haveDomain = false;
-					Add (cookie);
-					cookie = null;
+					break;
+#if NET_2_0
+				case "httponly":
+					c.HttpOnly = true;
+					break;
+#endif
+				case "secure":
+					c.Secure = true;
+					break;
+				default:
+					if (c.Name.Length == 0) {
+						c.Name = key;
+						c.Value = value;
+					}
+					break;
 				}
-				cookie = new Cookie (name, value);
-			}
-
-			if (cookie != null) {
-				if (!havePath)
-					cookie.Path = GetDir (uri.AbsolutePath);
-
-				if (!haveDomain)
-					cookie.Domain = uri.Host;
-
-				Add (cookie);
 			}
+			return c;
 		}
 
-	} // CookieContainer
-
-} // System.Net
+		static bool IsNullOrEmpty (string s)
+		{
+			return ((s == null) || (s.Length == 0));
+		}
+	}
+}
 
diff --git a/mcs/class/System/System.Net/HttpWebRequest.cs b/mcs/class/System/System.Net/HttpWebRequest.cs
index d83142b..9d78b41 100644
--- a/mcs/class/System/System.Net/HttpWebRequest.cs
+++ b/mcs/class/System/System.Net/HttpWebRequest.cs
@@ -1345,15 +1345,19 @@ namespace System.Net
 			if (isProxy && (proxy == null || proxy.Credentials == null))
 				return false;
 
-			string authHeader = response.Headers [(isProxy) ? "Proxy-Authenticate" : "WWW-Authenticate"];
-			if (authHeader == null)
+			string [] authHeaders = response.Headers.GetValues ( (isProxy) ? "Proxy-Authenticate" : "WWW-Authenticate");
+			if (authHeaders == null || authHeaders.Length == 0)
 				return false;
 
 			ICredentials creds = (!isProxy) ? credentials : proxy.Credentials;
-			Authorization auth = AuthenticationManager.Authenticate (authHeader, this, creds);
+			Authorization auth = null;
+			foreach (string authHeader in authHeaders) {
+				auth = AuthenticationManager.Authenticate (authHeader, this, creds);
+				if (auth != null)
+					break;
+			}
 			if (auth == null)
 				return false;
-
 			webHeaders [(isProxy) ? "Proxy-Authorization" : "Authorization"] = auth.Message;
 			authCompleted = auth.Complete;
 			is_ntlm_auth = (auth.Module.AuthenticationType == "NTLM");
diff --git a/mcs/class/System/Test/System.Net/ChangeLog b/mcs/class/System/Test/System.Net/ChangeLog
index 9f6ddd3..fc04546 100644
--- a/mcs/class/System/Test/System.Net/ChangeLog
+++ b/mcs/class/System/Test/System.Net/ChangeLog
@@ -1,3 +1,10 @@
+2009-12-24  Sebastien Pouliot  <sebastien at ximian.com>
+
+	* CookieContainerTest.cs: Split many tests into smaller test 
+	cases. Add test cases for DefaultPerDomainCookieLimit and
+	DefaultCookieLimit. Remove all, but one 1.x, [Category 
+	("NotWorking")] since everything works now.
+
 2009-07-22 Gonzalo Paniagua Javier <gonzalo at novell.com>
 
 	* WebHeaderCollectionTest.cs: test for allowed characters in headers.
diff --git a/mcs/class/System/Test/System.Net/CookieContainerTest.cs b/mcs/class/System/Test/System.Net/CookieContainerTest.cs
index d54761f..4a49a84 100644
--- a/mcs/class/System/Test/System.Net/CookieContainerTest.cs
+++ b/mcs/class/System/Test/System.Net/CookieContainerTest.cs
@@ -4,8 +4,9 @@
 // Authors:
 // 	Gonzalo Paniagua Javier (gonzalo at novell.com)
 //      Daniel Nauck    (dna(at)mono-project(dot)de)
+//	Sebastien Pouliot  <sebastien at ximian.com>
 //
-// (c) Copyright 2004 Novell, Inc. (http://www.novell.com)
+// Copyright (C) 2004,2009 Novell, Inc (http://www.novell.com)
 //
 
 using System;
@@ -14,66 +15,247 @@ using System.Reflection;
 
 using NUnit.Framework;
 
-namespace MonoTests.System.Net
-{
+namespace MonoTests.System.Net {
 	[TestFixture]
-	public class CookieContainerTest
-	{
-		[Test]
-		public void TestCtor1 ()
+	public class CookieContainerTest {
+		[Test] // .ctor ()
+		public void Constructor1 ()
+		{
+			CookieContainer c = new CookieContainer ();
+			Assert.AreEqual (0, c.Count, "Count");
+			Assert.AreEqual (CookieContainer.DefaultCookieLimit, c.Capacity, "Capacity");
+			Assert.AreEqual (CookieContainer.DefaultCookieLengthLimit, c.MaxCookieSize, "MaxCookieSize");
+			Assert.AreEqual (CookieContainer.DefaultPerDomainCookieLimit, c.PerDomainCapacity, "PerDomainCapacity");
+		}
+
+		[Test] // .ctor (Int32)
+		public void Constructor2 ()
 		{
 			CookieContainer c = new CookieContainer (234);
-			Assert.AreEqual (234, c.Capacity, "#1");
+			Assert.AreEqual (0, c.Count, "Count");
+			Assert.AreEqual (234, c.Capacity, "Capacity");
+			Assert.AreEqual (CookieContainer.DefaultCookieLengthLimit, c.MaxCookieSize, "MaxCookieSize");
+			Assert.AreEqual (CookieContainer.DefaultPerDomainCookieLimit, c.PerDomainCapacity, "PerDomainCapacity");
+		}
 
+		[Test]
+		public void Constructor2_Capacity_Invalid ()
+		{
+			// Capacity <= 0
 			try {
 				new CookieContainer (0);
-				Assert.Fail ("#2");
-			} catch (ArgumentException) {
+				Assert.Fail ("#A1");
+			}
+			catch (ArgumentException ex) {
+				Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
+				Assert.IsNull (ex.InnerException, "#A3");
+#if NET_2_0
+				// The specified value must be greater than 0
+				Assert.IsNotNull (ex.Message, "#A4");
+				Assert.AreEqual ("Capacity", ex.ParamName, "#A5");
+#else
+				Assert.AreEqual ("Capacity", ex.Message, "#A4");
+				Assert.IsNull (ex.ParamName, "#A5");
+#endif
 			}
 
+			// Capacity <= 0
 			try {
 				new CookieContainer (-10);
-				Assert.Fail ("#3");
-			} catch (ArgumentException) {
+				Assert.Fail ("#B1");
+			}
+			catch (ArgumentException ex) {
+				Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
+				Assert.IsNull (ex.InnerException, "#B3");
+#if NET_2_0
+				// The specified value must be greater than 0
+				Assert.IsNotNull (ex.Message, "#B4");
+				Assert.AreEqual ("Capacity", ex.ParamName, "#B5");
+#else
+				Assert.AreEqual ("Capacity", ex.Message, "#B4");
+				Assert.IsNull (ex.ParamName, "#B5");
+#endif
 			}
 		}
 
-		[Test]
-		public void TestCtor3 ()
+		[Test] // .ctor (Int32, Int32, Int32)
+		public void Constructor3 ()
 		{
-			CookieContainer c = new CookieContainer (100, 50, 1000);
-			Assert.AreEqual (100, c.Capacity, "#1");
-			Assert.AreEqual (50, c.PerDomainCapacity, "#2");
-			Assert.AreEqual (1000, c.MaxCookieSize, "#3");
+			CookieContainer c;
 
+			c = new CookieContainer (100, 50, 1000);
+			Assert.AreEqual (100, c.Capacity, "#A1");
+			Assert.AreEqual (50, c.PerDomainCapacity, "#A2");
+			Assert.AreEqual (1000, c.MaxCookieSize, "#A3");
+
+			c = new CookieContainer (234, int.MaxValue, 650);
+			Assert.AreEqual (234, c.Capacity, "#A1");
+			Assert.AreEqual (int.MaxValue, c.PerDomainCapacity, "#A2");
+			Assert.AreEqual (650, c.MaxCookieSize, "#A3");
+
+			c = new CookieContainer (234, 234, 100);
+			Assert.AreEqual (234, c.Capacity, "#A1");
+			Assert.AreEqual (234, c.PerDomainCapacity, "#A2");
+			Assert.AreEqual (100, c.MaxCookieSize, "#A3");
+		}
+
+		[Test]
+		public void Constructor3_Capacity_Invalid ()
+		{
+			// Capacity <= 0
 			try {
-				new CookieContainer (100, 0, 1000);
-				Assert.Fail ("#4");
-			} catch (ArgumentException) {
+				new CookieContainer (0, 0, 100);
+				Assert.Fail ("#A1");
+			}
+			catch (ArgumentException ex) {
+				Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
+				Assert.IsNull (ex.InnerException, "#A3");
+#if NET_2_0
+				// The specified value must be greater than 0
+				Assert.IsNotNull (ex.Message, "#A4");
+				Assert.AreEqual ("Capacity", ex.ParamName, "#A5");
+#else
+				Assert.AreEqual ("Capacity", ex.Message, "#A4");
+				Assert.IsNull (ex.ParamName, "#A5");
+#endif
 			}
 
+			// Capacity <= 0
 			try {
-				new CookieContainer (100, -1, 1000);
-				Assert.Fail ("#5");
-			} catch (ArgumentException) {
+				new CookieContainer (-10, 0, 100);
+				Assert.Fail ("#B1");
+			}
+			catch (ArgumentException ex) {
+				Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
+				Assert.IsNull (ex.InnerException, "#B3");
+#if NET_2_0
+				// The specified value must be greater than 0
+				Assert.IsNotNull (ex.Message, "#B4");
+				Assert.AreEqual ("Capacity", ex.ParamName, "#B5");
+#else
+				Assert.AreEqual ("Capacity", ex.Message, "#B4");
+				Assert.IsNull (ex.ParamName, "#B5");
+#endif
 			}
+		}
 
-			c = new CookieContainer (100, int.MaxValue, 1000);
-			Assert.AreEqual (int.MaxValue, c.PerDomainCapacity, "#6");
+		[Test] // .ctor (Int32, Int32, Int32)
+		public void Constructor3_MaxCookieSize_Invalid ()
+		{
+			CookieContainer c;
 
+			// MaxCookieSize <= 0
 			try {
 				new CookieContainer (100, 50, 0);
-				Assert.Fail ("#7");
-			} catch (ArgumentException) {
+				Assert.Fail ("#A1");
+			}
+			catch (ArgumentException ex) {
+				Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#A2");
+				Assert.IsNull (ex.InnerException, "#A3");
+#if NET_2_0
+				// The specified value must be greater than 0
+				Assert.IsNotNull (ex.Message, "#A3");
+				Assert.AreEqual ("MaxCookieSize", ex.ParamName, "#A4");
+#else
+				Assert.AreEqual ("MaxCookieSize", ex.Message, "#A4");
+				Assert.IsNull (ex.ParamName, "#A5");
+#endif
 			}
 
+			// MaxCookieSize <= 0
 			try {
-				new CookieContainer (100, 500, -4);
-				Assert.Fail ("#8");
-			} catch (ArgumentException) {
+				new CookieContainer (100, 50, -4);
+				Assert.Fail ("#B1");
+			}
+			catch (ArgumentException ex) {
+				Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
+				Assert.IsNull (ex.InnerException, "#B3");
+#if NET_2_0
+				// The specified value must be greater than 0
+				Assert.IsNotNull (ex.Message, "#B3");
+				Assert.AreEqual ("MaxCookieSize", ex.ParamName, "#B4");
+#else
+				Assert.AreEqual ("MaxCookieSize", ex.Message, "#B4");
+				Assert.IsNull (ex.ParamName, "#B5");
+#endif
 			}
 		}
 
+		[Test] // .ctor (Int32, Int32, Int32)
+		public void Constructor3_PerDomainCapacity_Invalid ()
+		{
+			CookieContainer c;
+
+			// PerDomainCapacity <= 0
+			try {
+				new CookieContainer (432, 0, 1000);
+				Assert.Fail ("#B1");
+#if NET_2_0
+			}
+			catch (ArgumentOutOfRangeException ex) {
+				// 'PerDomainCapacity' has to be greater than
+				// '0' and less than '432'
+				Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#B2");
+				Assert.IsNull (ex.InnerException, "#B3");
+				Assert.IsNotNull (ex.Message, "#B4");
+				Assert.AreEqual ("perDomainCapacity", ex.ParamName, "#B5");
+			}
+#else
+			} catch (ArgumentException ex) {
+				Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#B2");
+				Assert.IsNull (ex.InnerException, "#B3");
+				Assert.AreEqual ("PerDomainCapacity", ex.Message, "#B4");
+				Assert.IsNull (ex.ParamName, "#B5");
+			}
+#endif
+
+			// PerDomainCapacity <= 0
+			try {
+				new CookieContainer (432, -1, 1000);
+				Assert.Fail ("#C1");
+#if NET_2_0
+			}
+			catch (ArgumentOutOfRangeException ex) {
+				// 'PerDomainCapacity' has to be greater than
+				// '0' and less than '432'
+				Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#C2");
+				Assert.IsNull (ex.InnerException, "#C3");
+				Assert.IsNotNull (ex.Message, "#C4");
+				Assert.AreEqual ("perDomainCapacity", ex.ParamName, "#C5");
+			}
+#else
+			} catch (ArgumentException ex) {
+				Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
+				Assert.IsNull (ex.InnerException, "#C3");
+				Assert.AreEqual ("PerDomainCapacity", ex.Message, "#C4");
+				Assert.IsNull (ex.ParamName, "#C5");
+			}
+#endif
+
+			// PerDomainCapacity > Capacity (and != Int32.MaxValue)
+			try {
+				new CookieContainer (432, 433, 1000);
+				Assert.Fail ("#C1");
+#if NET_2_0
+			}
+			catch (ArgumentOutOfRangeException ex) {
+				// 'PerDomainCapacity' has to be greater than
+				// '0' and less than '432'
+				Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#C2");
+				Assert.IsNull (ex.InnerException, "#C3");
+				Assert.IsNotNull (ex.Message, "#C4");
+				Assert.AreEqual ("perDomainCapacity", ex.ParamName, "#C5");
+			}
+#else
+			} catch (ArgumentException ex) {
+				Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#C2");
+				Assert.IsNull (ex.InnerException, "#C3");
+				Assert.AreEqual ("PerDomainCapacity", ex.Message, "#C4");
+				Assert.IsNull (ex.ParamName, "#C5");
+			}
+#endif
+		}
+
 		[Test]
 		public void TestDefaultLimits ()
 		{
@@ -83,89 +265,344 @@ namespace MonoTests.System.Net
 		}
 
 		[Test]
-		public void TestCapacity ()
+		public void Capacity ()
+		{
+			CookieContainer c = new CookieContainer ();
+			c.Capacity = c.PerDomainCapacity;
+			Assert.AreEqual (c.PerDomainCapacity, c.Capacity, "#A1");
+			Assert.AreEqual (CookieContainer.DefaultCookieLengthLimit, c.MaxCookieSize, "#A2");
+			Assert.AreEqual (CookieContainer.DefaultPerDomainCookieLimit, c.PerDomainCapacity, "#A3");
+			c.Capacity = int.MaxValue;
+			Assert.AreEqual (int.MaxValue, c.Capacity, "#B1");
+			Assert.AreEqual (CookieContainer.DefaultCookieLengthLimit, c.MaxCookieSize, "#B2");
+			Assert.AreEqual (CookieContainer.DefaultPerDomainCookieLimit, c.PerDomainCapacity, "#B3");
+			c.PerDomainCapacity = int.MaxValue;
+			c.Capacity = (c.PerDomainCapacity - 1);
+			Assert.AreEqual ((c.PerDomainCapacity - 1), c.Capacity, "#C1");
+			Assert.AreEqual (CookieContainer.DefaultCookieLengthLimit, c.MaxCookieSize, "#C2");
+			Assert.AreEqual (int.MaxValue, c.PerDomainCapacity, "#C3");
+		}
+
+		[Test]
+		public void Capacity_Value_Invalid ()
 		{
 			CookieContainer c = new CookieContainer ();
-			Assert.AreEqual (300, c.Capacity, "#1");
-			c.Capacity = 200;
-			Assert.AreEqual (200, c.Capacity, "#2");
 
+			// Capacity <= 0
 			try {
 				c.Capacity = -5;
-				Assert.Fail ("#3");
-			} catch (ArgumentOutOfRangeException) {
+				Assert.Fail ("#A1");
+			}
+			catch (ArgumentOutOfRangeException ex) {
+				// 'Capacity' has to be greater than '0' and
+				// less than '20'
+				Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#A2");
+				Assert.IsNull (ex.InnerException, "#A3");
+				Assert.IsNotNull (ex.Message, "#A4");
+				Assert.AreEqual ("value", ex.ParamName, "#A5");
 			}
 
+			// Capacity <= 0
 			try {
-				c.Capacity = 5; // must be >= PerDomainCapacity if PerDomainCapacity != Int32.MaxValue
-				Assert.Fail ("#4");
-			} catch (ArgumentOutOfRangeException) {
+				c.Capacity = 0;
+				Assert.Fail ("#B1");
+			}
+			catch (ArgumentOutOfRangeException ex) {
+				// 'Capacity' has to be greater than '0' and
+				// less than '20'
+				Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#B2");
+				Assert.IsNull (ex.InnerException, "#B3");
+				Assert.IsNotNull (ex.Message, "#B4");
+				Assert.AreEqual ("value", ex.ParamName, "#B5");
+			}
+
+			// Capacity < PerDomainCapacity (and PerDomainCapacity != Int32.MaxValue)
+			try {
+				c.Capacity = 5;
+				Assert.Fail ("#C1");
+			}
+			catch (ArgumentOutOfRangeException ex) {
+				// 'Capacity' has to be greater than '0' and
+				// less than '20'
+				Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#C2");
+				Assert.IsNull (ex.InnerException, "#C3");
+				Assert.IsNotNull (ex.Message, "#C4");
+				Assert.AreEqual ("value", ex.ParamName, "#C5");
 			}
 		}
 
 		[Test]
-		public void TestMaxCookieSize ()
+		public void MaxCookieSize ()
+		{
+			CookieContainer c = new CookieContainer ();
+			c.MaxCookieSize = 80000;
+			Assert.AreEqual (CookieContainer.DefaultCookieLimit, c.Capacity, "#A1");
+			Assert.AreEqual (80000, c.MaxCookieSize, "#A2");
+			Assert.AreEqual (CookieContainer.DefaultPerDomainCookieLimit, c.PerDomainCapacity, "#A3");
+			c.MaxCookieSize = int.MaxValue;
+			Assert.AreEqual (CookieContainer.DefaultCookieLimit, c.Capacity, "#B1");
+			Assert.AreEqual (int.MaxValue, c.MaxCookieSize, "#B2");
+			Assert.AreEqual (CookieContainer.DefaultPerDomainCookieLimit, c.PerDomainCapacity, "#B3");
+			c.MaxCookieSize = 1;
+			Assert.AreEqual (CookieContainer.DefaultCookieLimit, c.Capacity, "#C1");
+			Assert.AreEqual (1, c.MaxCookieSize, "#C2");
+			Assert.AreEqual (CookieContainer.DefaultPerDomainCookieLimit, c.PerDomainCapacity, "#C3");
+		}
+
+		[Test]
+		public void MaxCookieSize_Value_Invalid ()
 		{
 			CookieContainer c = new CookieContainer ();
-			Assert.AreEqual (4096, c.MaxCookieSize, "#1");
 
+			// MaxCookieSize <= 0
 			try {
 				c.MaxCookieSize = -5;
-				Assert.Fail ("#2");
-			} catch (ArgumentOutOfRangeException) {
+				Assert.Fail ("#A1");
+			}
+			catch (ArgumentOutOfRangeException ex) {
+				Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#A2");
+				Assert.IsNull (ex.InnerException, "#A3");
+				Assert.IsNotNull (ex.Message, "#A4");
+				Assert.AreEqual ("value", ex.ParamName, "#A5");
 			}
 
+			// MaxCookieSize <= 0
 			try {
 				c.MaxCookieSize = -1;
-				Assert.Fail ("#3");
-			} catch (ArgumentOutOfRangeException) {
+				Assert.Fail ("#B1");
+			}
+			catch (ArgumentOutOfRangeException ex) {
+				Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#B2");
+				Assert.IsNull (ex.InnerException, "#B3");
+				Assert.IsNotNull (ex.Message, "#B4");
+				Assert.AreEqual ("value", ex.ParamName, "#B5");
 			}
 
-			c.MaxCookieSize = 80000;
-			Assert.AreEqual (80000, c.MaxCookieSize, "#4");
-			c.MaxCookieSize = int.MaxValue;
-			Assert.AreEqual (int.MaxValue, c.MaxCookieSize, "#5");
+			// MaxCookieSize <= 0
+			try {
+				c.MaxCookieSize = 0;
+				Assert.Fail ("#C1");
+			}
+			catch (ArgumentOutOfRangeException ex) {
+				Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#C2");
+				Assert.IsNull (ex.InnerException, "#C3");
+				Assert.IsNotNull (ex.Message, "#C4");
+				Assert.AreEqual ("value", ex.ParamName, "#C5");
+			}
 		}
 
 		[Test]
-		public void TestAdd_Args ()
+		public void PerDomainCapacity ()
+		{
+			CookieContainer c = new CookieContainer ();
+			c.PerDomainCapacity = c.Capacity;
+			Assert.AreEqual (c.Capacity, c.PerDomainCapacity, "#1");
+			c.PerDomainCapacity = int.MaxValue;
+			Assert.AreEqual (int.MaxValue, c.PerDomainCapacity, "#2");
+			c.PerDomainCapacity = c.Capacity - 5;
+			Assert.AreEqual ((c.Capacity - 5), c.PerDomainCapacity, "#3");
+			c.PerDomainCapacity = 1;
+			Assert.AreEqual (1, c.PerDomainCapacity, "#4");
+		}
+
+		[Test]
+		public void PerDomainCapacity_Value_Invalid ()
+		{
+			CookieContainer c = new CookieContainer ();
+
+			// PerDomainCapacity <= 0
+			try {
+				c.PerDomainCapacity = -5;
+				Assert.Fail ("#A1");
+			}
+			catch (ArgumentOutOfRangeException ex) {
+				Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#A2");
+				Assert.IsNull (ex.InnerException, "#A3");
+				Assert.IsNotNull (ex.Message, "#A4");
+				Assert.AreEqual ("value", ex.ParamName, "#A5");
+			}
+
+			// PerDomainCapacity <= 0
+			try {
+				c.PerDomainCapacity = 0;
+				Assert.Fail ("#B1");
+			}
+			catch (ArgumentOutOfRangeException ex) {
+				Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#B2");
+				Assert.IsNull (ex.InnerException, "#B3");
+				Assert.IsNotNull (ex.Message, "#B4");
+				Assert.AreEqual ("value", ex.ParamName, "#B5");
+			}
+
+			c.Capacity = (c.PerDomainCapacity + 5);
+
+			// PerDomainCapacity > Capacity (and != Int32.MaxValue)
+			try {
+				c.PerDomainCapacity = (c.Capacity + 1);
+				Assert.Fail ("#C1");
+			}
+			catch (ArgumentOutOfRangeException ex) {
+				Assert.AreEqual (typeof (ArgumentOutOfRangeException), ex.GetType (), "#C2");
+				Assert.IsNull (ex.InnerException, "#C3");
+				Assert.IsNotNull (ex.Message, "#C4");
+				Assert.AreEqual ("value", ex.ParamName, "#C5");
+			}
+		}
+
+		[Test] // Add (Cookie)
+		public void Add1 ()
 		{
 			CookieContainer cc = new CookieContainer ();
+			Cookie cookie = new Cookie ("Age", "28", string.Empty, "localhost");
+			Assert.AreEqual ("Age", cookie.Name, "Name");
+			Assert.AreEqual ("28", cookie.Value, "Value");
+			Assert.AreEqual (String.Empty, cookie.Path, "Path");
+			Assert.AreEqual ("localhost", cookie.Domain, "Domain");
+			// does not survive the addition "cloning"
+			cookie.Comment = "comment";
+			cookie.CommentUri = new Uri ("http://localhost");
+			cookie.Discard = true;
+			cookie.Expires = DateTime.MaxValue;
+#if NET_2_0
+			cookie.HttpOnly = true;
+#endif
+			cookie.Secure = true;
+			// except version
+			cookie.Version = 1;
+
+			cc.Add (cookie);
+			Assert.AreEqual (1, cc.Count, "#A1");
+
+			CookieCollection cookies = cc.GetCookies (new Uri ("http://localhost/Whatever"));
+			Assert.AreEqual (1, cookies.Count, "#A2");
+			Assert.AreNotSame (cookie, cookies [0], "!same");
+
+			cookie = cookies [0];
+			Assert.AreEqual ("Age", cookie.Name, "Clone-Name");
+			Assert.AreEqual ("28", cookie.Value, "Clone-Value");
+			// Path is not the same, nor default
+			Assert.AreEqual ("/", cookie.Path, "Clone-Path");
+			Assert.AreEqual ("localhost", cookie.Domain, "Clone-Domain");
+			// other non-core properties have default values
+			Assert.AreEqual (String.Empty, cookie.Comment, "Clone-Comment");
+			Assert.IsNull (cookie.CommentUri, "Clone-CommentUri");
+			Assert.IsFalse (cookie.Discard, "Clone-Discard");
+			Assert.AreEqual (DateTime.MinValue, cookie.Expires, "Clone-Expires");
+#if NET_2_0
+			Assert.IsFalse (cookie.HttpOnly, "Clone-HttpOnly");
+#endif
+			Assert.IsFalse (cookie.Secure, "Clone-Secure");
+			// except version
+			Assert.AreEqual (1, cookie.Version, "Clone-Version");
+
+			cookies = cc.GetCookies (new Uri ("http://localhost/Whatever"));
+			// the same Cookie instance returned for a second query
+			Assert.AreSame (cookie, cookies [0], "!same-2");
+		}
 
+		[Test] // Add (Cookie)
+		public void Add1_Domain_Empty ()
+		{
+			CookieContainer cc = new CookieContainer ();
+			Cookie cookie = new Cookie ("Age", "28");
 			try {
-				cc.Add ((Cookie) null);
+				cc.Add (cookie);
 				Assert.Fail ("#1");
-			} catch (ArgumentNullException) {
 			}
+			catch (ArgumentException ex) {
+				Assert.AreEqual (typeof (ArgumentException), ex.GetType (), "#2");
+				Assert.IsNull (ex.InnerException, "#3");
+#if NET_2_0
+				Assert.IsNotNull (ex.Message, "#4");
+				Assert.AreEqual ("cookie.Domain", ex.ParamName, "#5");
+#else
+				Assert.AreEqual ("cookie.Domain", ex.Message, "#4");
+				Assert.IsNull (ex.ParamName, "#5");
+#endif
+			}
+		}
 
+		[Test] // Add (CookieCollection)
+		public void Add2_Cookies_Null ()
+		{
+			CookieContainer cc = new CookieContainer ();
 			try {
 				cc.Add ((CookieCollection) null);
-				Assert.Fail ("#2");
-			} catch (ArgumentNullException) {
+				Assert.Fail ("#1");
+			}
+			catch (ArgumentNullException ex) {
+				Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
+				Assert.IsNull (ex.InnerException, "#3");
+				Assert.IsNotNull (ex.Message, "#4");
+				Assert.AreEqual ("cookies", ex.ParamName, "#5");
 			}
+		}
 
+		[Test] // Add (Uri, Cookie)
+		public void Add3_Uri_Null ()
+		{
+			CookieContainer cc = new CookieContainer ();
+			Cookie cookie = new Cookie ("Age", "28", "", "localhost");
 			try {
-				cc.Add (null, (Cookie) null);
-				Assert.Fail ("#3");
-			} catch (ArgumentNullException) {
+				cc.Add ((Uri) null, cookie);
+				Assert.Fail ("#1");
+			}
+			catch (ArgumentNullException ex) {
+				Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
+				Assert.IsNull (ex.InnerException, "#3");
+				Assert.IsNotNull (ex.Message, "#4");
+				Assert.AreEqual ("uri", ex.ParamName, "#5");
 			}
+		}
 
+		[Test] // Add (Uri, Cookie)
+		public void Add3_Cookie_Null ()
+		{
+			CookieContainer cc = new CookieContainer ();
+			Uri uri = new Uri ("http://www.contoso.com");
 			try {
-				cc.Add (null, (CookieCollection) null);
-				Assert.Fail ("#4");
-			} catch (ArgumentNullException) {
+				cc.Add (uri, (Cookie) null);
+				Assert.Fail ("#1");
+			}
+			catch (ArgumentNullException ex) {
+				Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
+				Assert.IsNull (ex.InnerException, "#3");
+				Assert.IsNotNull (ex.Message, "#4");
+				Assert.AreEqual ("cookie", ex.ParamName, "#5");
 			}
+		}
 
+		[Test] // Add (Uri, CookieCollection)
+		public void Add4_Uri_Null ()
+		{
+			CookieContainer cc = new CookieContainer ();
+			CookieCollection cookies = new CookieCollection ();
 			try {
-				cc.Add (new Uri ("http://www.contoso.com"), (Cookie) null);
-				Assert.Fail ("#5");
-			} catch (ArgumentNullException) {
+				cc.Add ((Uri) null, cookies);
+				Assert.Fail ("#1");
+			}
+			catch (ArgumentNullException ex) {
+				Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
+				Assert.IsNull (ex.InnerException, "#3");
+				Assert.IsNotNull (ex.Message, "#4");
+				Assert.AreEqual ("uri", ex.ParamName, "#5");
 			}
+		}
 
+		[Test] // Add (Uri, CookieCollection)
+		public void Add4_Cookie_Null ()
+		{
+			CookieContainer cc = new CookieContainer ();
+			Uri uri = new Uri ("http://www.contoso.com");
 			try {
-				cc.Add (new Uri ("http://www.contoso.com"), (CookieCollection) null);
-				Assert.Fail ("#6");
-			} catch (ArgumentNullException) {
+				cc.Add (uri, (CookieCollection) null);
+				Assert.Fail ("#1");
+			}
+			catch (ArgumentNullException ex) {
+				Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
+				Assert.IsNull (ex.InnerException, "#3");
+				Assert.IsNotNull (ex.Message, "#4");
+				Assert.AreEqual ("cookies", ex.ParamName, "#5");
 			}
 		}
 
@@ -198,7 +635,7 @@ namespace MonoTests.System.Net
 		}
 
 		[Test]
-		[Category ("NotWorking")]
+		//		[Category ("NotWorking")]
 		public void TestAddExpired_Cookie ()
 		{
 			CookieContainer cc = new CookieContainer ();
@@ -262,7 +699,7 @@ namespace MonoTests.System.Net
 			Assert.IsFalse (cookie.Secure, "#C11");
 
 			Assert.AreEqual (2, cc.Count, "#D1");
-			coll = cc.GetCookies (new Uri("http://contoso.com"));
+			coll = cc.GetCookies (new Uri ("http://contoso.com"));
 			Assert.AreEqual (0, coll.Count, "#D1.1");
 
 			//not expired cookie
@@ -304,39 +741,192 @@ namespace MonoTests.System.Net
 		}
 
 		[Test]
-		public void TestGetCookies_Args ()
+		public void GetCookieHeader1 ()
+		{
+			CookieContainer cc;
+			Cookie cookie;
+
+			cc = new CookieContainer ();
+			cookie = new Cookie ("name1", "value1", "/path", "localhost");
+			cookie.Comment = "Short name";
+			cookie.Expires = DateTime.Now.Add (new TimeSpan (3, 2, 5));
+			cookie.Version = 0;
+			cc.Add (cookie);
+			cookie = new Cookie ("name2", "value2", "/path/sub", "localhost");
+			cookie.Comment = "Description";
+			cookie.Expires = DateTime.Now.Add (new TimeSpan (3, 2, 5));
+			cookie.Version = 1;
+			cc.Add (cookie);
+			Assert.AreEqual ("$Version=1; name2=value2; $Path=/path/sub; name1=value1", cc.GetCookieHeader (new Uri ("http://localhost/path/sub")), "#A1");
+			Assert.AreEqual ("name1=value1", cc.GetCookieHeader (new Uri ("http://localhost/path")), "#A2");
+			Assert.AreEqual (string.Empty, cc.GetCookieHeader (new Uri ("http://localhost/whatever")), "#A3");
+		}
+
+		[Test]
+		public void GetCookieHeader2a ()
 		{
 			CookieContainer cc = new CookieContainer ();
-			try {
-				cc.GetCookies (null);
-				Assert.Fail ("#1");
-			} catch (ArgumentNullException) {
-			}
+			Cookie cookie = new Cookie ("Country", "Belgium", "/path", "mono.com");
+			cc.Add (cookie);
+			cookie = new Cookie ("Age", "26", "/path", "dev.mono.com");
+			cc.Add (cookie);
+
+			Assert.AreEqual ("Age=26", cc.GetCookieHeader (new Uri ("http://dev.mono.com/path/ok")), "#A1");
+			Assert.AreEqual ("Country=Belgium", cc.GetCookieHeader (new Uri ("http://mono.com/path")), "#A2");
+			Assert.AreEqual ("", cc.GetCookieHeader (new Uri ("http://test.mono.com/path")), "#A3");
+			Assert.AreEqual ("", cc.GetCookieHeader (new Uri ("http://us.dev.mono.com/path")), "#A4");
 		}
 
 		[Test]
-		public void TestSetCookies_Args ()
+		public void GetCookieHeader2b ()
 		{
 			CookieContainer cc = new CookieContainer ();
-			try {
-				cc.SetCookies (null, "");
-				Assert.Fail ("#1");
-			} catch (ArgumentNullException) {
-			}
+			Cookie cookie = new Cookie ("Country", "Belgium", "/path", ".mono.com");
+			cc.Add (cookie);
+			cookie = new Cookie ("Age", "26", "/path", ".dev.mono.com");
+			cc.Add (cookie);
 
-			try {
-				cc.SetCookies (new Uri ("http://www.contoso.com"), null);
-				Assert.Fail ("#2");
-			} catch (ArgumentNullException) {
-			}
+			Assert.AreEqual ("Country=Belgium", cc.GetCookieHeader (new Uri ("http://dev.mono.com/path/ok")), "#C1");
+			Assert.AreEqual ("", cc.GetCookieHeader (new Uri ("http://mono.com/path")), "#C2");
+			Assert.AreEqual ("Country=Belgium", cc.GetCookieHeader (new Uri ("http://test.mono.com/path")), "#C3");
+			Assert.AreEqual ("Age=26; Country=Belgium", cc.GetCookieHeader (new Uri ("http://us.dev.mono.com/path")), "#C4");
+		}
+
+		[Test]
+		public void GetCookieHeader3 ()
+		{
+			CookieContainer cc = new CookieContainer ();
+			cc.SetCookies (new Uri ("http://dev.test.mono.com/Whatever/Do"),
+				"Country=Belgium; path=/Whatever; domain=mono.com;" +
+				"Age=26; path=/Whatever; domain=test.mono.com," +
+				"Weight=87; path=/Whatever/Do; domain=.mono.com");
+			Assert.AreEqual ("Weight=87; Country=Belgium", cc.GetCookieHeader (new Uri ("http://dev.mono.com/Whatever/Do")), "#C1");
+			Assert.AreEqual ("Weight=87; Country=Belgium", cc.GetCookieHeader (new Uri ("http://test.mono.com/Whatever/Do")), "#C2");
+			Assert.AreEqual ("", cc.GetCookieHeader (new Uri ("http://mono.com/Whatever/Do")), "#C3");
+			Assert.AreEqual ("Weight=87; Country=Belgium", cc.GetCookieHeader (new Uri ("http://us.test.mono.com/Whatever/Do")), "#C4");
+		}
 
+		[Test]
+		public void GetCookieHeader4 ()
+		{
+			CookieContainer cc = new CookieContainer ();
+			Cookie cookie = new Cookie ("Height", "178", "/Whatever", "mono.com");
+			cc.Add (cookie);
+			cookie = new Cookie ("Town", "Brussels", "/Whatever", ".mono.com");
+			cc.Add (cookie);
+			cookie = new Cookie ("Income", "34445", "/Whatever/", ".test.mono.com");
+			cc.Add (cookie);
+			cookie = new Cookie ("Sex", "Male", "/WhateveR/DO", ".test.mono.com");
+			cc.Add (cookie);
+			cc.SetCookies (new Uri ("http://dev.test.mono.com/Whatever/Do/You"),
+				"Country=Belgium," +
+				"Age=26; path=/Whatever/Do; domain=test.mono.com," +
+				"Weight=87; path=/");
+			Assert.AreEqual ("Age=26; Income=34445; Town=Brussels",
+				cc.GetCookieHeader (new Uri ("http://us.test.mono.com/Whatever/Do/Ok")),
+				"#D");
+		}
+
+		[Test]
+		public void GetCookieHeader5a ()
+		{
+			CookieContainer cc = new CookieContainer ();
+			Cookie cookie = new Cookie ("name1", "value1", "", "localhost");
+			cookie.Comment = "Short name";
+			cookie.Expires = DateTime.Now.Add (new TimeSpan (3, 2, 5));
+			cookie.Version = 1;
+			cc.Add (cookie);
+			Assert.AreEqual ("$Version=1; name1=value1; $Domain=localhost", cookie.ToString (), "#E0");
+			Assert.AreEqual ("$Version=1; name1=value1; $Path=/",
+				cc.GetCookieHeader (new Uri ("http://localhost/path/sub")), "#E1");
+		}
+
+		[Test]
+		public void GetCookieHeader5b ()
+		{
+			CookieContainer cc = new CookieContainer ();
+			Cookie cookie = new Cookie ("name1", "value1");
+			cookie.Domain = "localhost";
+			cookie.Comment = "Short name";
+			cookie.Expires = DateTime.Now.Add (new TimeSpan (3, 2, 5));
+			cookie.Version = 1;
+			cc.Add (cookie);
+			Assert.AreEqual ("$Version=1; name1=value1; $Domain=localhost", cookie.ToString (), "#E0");
+			Assert.AreEqual ("$Version=1; name1=value1; $Path=/",
+				cc.GetCookieHeader (new Uri ("http://localhost/path/sub")), "#E1");
+		}
+
+		[Test]
+		public void GetCookieHeader6 ()
+		{
+			CookieContainer cc = new CookieContainer ();
+			Cookie cookie = new Cookie ("name1", "value1", "", "localhost");
+			cookie.Comment = "Short name";
+			cookie.Expires = DateTime.Now.Add (new TimeSpan (3, 2, 5));
+			cookie.Version = 0;
+			cc.Add (cookie);
+			Assert.AreEqual ("name1=value1",
+				cc.GetCookieHeader (new Uri ("http://localhost/path/sub")), "#E2");
+		}
+
+		[Test]
+		public void GetCookieHeader7a ()
+		{
+			CookieContainer cc = new CookieContainer ();
+			Cookie cookie = new Cookie ("name1", "value1", "/path", ".mono.com");
+			cookie.Comment = "Short name";
+			cookie.Expires = DateTime.Now.Add (new TimeSpan (3, 2, 5));
+			cookie.Version = 0;
+			cc.Add (cookie);
+			cookie = new Cookie ("name2", "value2", "/path/sub", ".mono.com");
+			cookie.Comment = "Description";
+			cookie.Expires = DateTime.Now.Add (new TimeSpan (3, 2, 5));
+			cookie.Version = 1;
+			cc.Add (cookie);
+			Assert.AreEqual ("$Version=1; name2=value2; $Path=/path/sub; $Domain=.mono.com; name1=value1", cc.GetCookieHeader (new Uri ("http://live.mono.com/path/sub")), "#A1");
+			Assert.AreEqual ("name1=value1", cc.GetCookieHeader (new Uri ("http://live.mono.com/path")), "#A2");
+			Assert.AreEqual (string.Empty, cc.GetCookieHeader (new Uri ("http://live.mono.com/whatever")), "#A3");
+			Assert.AreEqual (string.Empty, cc.GetCookieHeader (new Uri ("http://gomono.com/path/sub")), "#A4");
+			Assert.AreEqual (string.Empty, cc.GetCookieHeader (new Uri ("http://mono.com/path/sub")), "#A5");
+		}
+
+		[Test]
+		public void GetCookieHeader7b ()
+		{
+			CookieContainer cc = new CookieContainer ();
+			Cookie cookie = new Cookie ("name1", "value1", "/path", "live.mono.com");
+			cookie.Comment = "Short name";
+			cookie.Expires = DateTime.Now.Add (new TimeSpan (3, 2, 5));
+			cookie.Version = 0;
+			cc.Add (cookie);
+			cookie = new Cookie ("name2", "value2", "/path/sub", "live.mono.com");
+			cookie.Comment = "Description";
+			cookie.Expires = DateTime.Now.Add (new TimeSpan (3, 2, 5));
+			cookie.Version = 1;
+			cc.Add (cookie);
+			Assert.AreEqual ("$Version=1; name2=value2; $Path=/path/sub; name1=value1", cc.GetCookieHeader (new Uri ("http://live.mono.com/path/sub")), "#B1");
+			Assert.AreEqual ("name1=value1", cc.GetCookieHeader (new Uri ("http://live.mono.com/path")), "#B2");
+			Assert.AreEqual (string.Empty, cc.GetCookieHeader (new Uri ("http://live.mono.com/whatever")), "#B3");
+			Assert.AreEqual (string.Empty, cc.GetCookieHeader (new Uri ("http://go.live.mono.com/path/sub")), "#B4");
+			Assert.AreEqual (string.Empty, cc.GetCookieHeader (new Uri ("http://go.live.mono.com/path")), "#B5");
+			Assert.AreEqual (string.Empty, cc.GetCookieHeader (new Uri ("http://go.live.mono.com/whatever")), "#B6");
+			Assert.AreEqual (string.Empty, cc.GetCookieHeader (new Uri ("http://golive.mono.com/whatever")), "#B7");
+		}
+
+		[Test]
+		public void GetCookieHeader_Uri_Null ()
+		{
+			CookieContainer cc = new CookieContainer ();
 			try {
-				cc.SetCookies (new Uri ("http://www.contoso.com"), "=lalala");
-				Assert.Fail ("#3");
-			} catch (CookieException) {
+				cc.GetCookieHeader ((Uri) null);
+				Assert.Fail ("#1");
+			}
+			catch (ArgumentNullException ex) {
+				Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
+				Assert.IsNull (ex.InnerException, "#3");
+				Assert.IsNotNull (ex.Message, "#4");
+				Assert.AreEqual ("uri", ex.ParamName, "#5");
 			}
-
-			cc.SetCookies (new Uri ("http://www.contoso.com"), "");
 		}
 
 		[Test]
@@ -379,11 +969,608 @@ namespace MonoTests.System.Net
 		}
 
 		[Test]
-		[ExpectedException (typeof (ArgumentNullException))]
-		public void GetCookies_Uri_Null ()
+		public void GetCookies2a ()
+		{
+			CookieContainer container = new CookieContainer ();
+			container.Add (new Cookie ("Country", "Belgium", "/path", "mono.com"));
+			container.Add (new Cookie ("Age", "26", "/path", "dev.mono.com"));
+
+			CookieCollection cookies = container.GetCookies (new Uri ("http://dev.mono.com/path/ok"));
+			Assert.IsNotNull (cookies, "#G1");
+			Assert.AreEqual (1, cookies.Count, "#G2");
+
+			Cookie cookie = cookies [0];
+			Assert.AreEqual ("Age", cookie.Name, "#H1");
+			Assert.AreEqual ("26", cookie.Value, "#H2");
+			Assert.AreEqual ("/path", cookie.Path, "#H3");
+			Assert.AreEqual ("dev.mono.com", cookie.Domain, "#H4");
+
+			cookies = container.GetCookies (new Uri ("http://mono.com/path"));
+			Assert.IsNotNull (cookies, "#I1");
+			Assert.AreEqual (1, cookies.Count, "#I2");
+
+			cookie = cookies [0];
+			Assert.AreEqual ("Country", cookie.Name, "#J1");
+			Assert.AreEqual ("Belgium", cookie.Value, "#J2");
+			Assert.AreEqual ("/path", cookie.Path, "#J3");
+			Assert.AreEqual ("mono.com", cookie.Domain, "#J4");
+
+			cookies = container.GetCookies (new Uri ("http://test.mono.com/path"));
+			Assert.IsNotNull (cookies, "#K1");
+			Assert.AreEqual (0, cookies.Count, "#K2");
+
+			cookies = container.GetCookies (new Uri ("http://us.dev.mono.com/path"));
+			Assert.IsNotNull (cookies, "#L1");
+			Assert.AreEqual (0, cookies.Count, "#L2");
+		}
+
+		[Test]
+		public void GetCookies2b ()
+		{
+			CookieContainer container = new CookieContainer ();
+			container.SetCookies (new Uri ("http://dev.test.mono.com/Whatever/Do"),
+				"Country=Belgium; path=/Whatever; domain=mono.com," +
+				"Age=26; path=/Whatever; domain=test.mono.com," +
+				"Weight=87; path=/Whatever/Do; domain=.mono.com;");
+
+			CookieCollection cookies = container.GetCookies (new Uri ("http://dev.mono.com/Whatever/Do"));
+			Assert.IsNotNull (cookies, "#M1");
+			Assert.AreEqual (2, cookies.Count, "#M2");
+
+			Cookie cookie = cookies [0];
+			Assert.AreEqual ("Weight", cookie.Name, "#N1");
+			Assert.AreEqual ("87", cookie.Value, "#N2");
+			Assert.AreEqual ("/Whatever/Do", cookie.Path, "#N3");
+			Assert.AreEqual (".mono.com", cookie.Domain, "#N4");
+			cookie = cookies [1];
+			Assert.AreEqual ("Country", cookie.Name, "#N5");
+			Assert.AreEqual ("Belgium", cookie.Value, "#N6");
+			Assert.AreEqual ("/Whatever", cookie.Path, "#N7");
+			Assert.AreEqual ("mono.com", cookie.Domain, "#N8");
+
+			cookies = container.GetCookies (new Uri ("http://test.mono.com/Whatever/Do"));
+			Assert.IsNotNull (cookies, "#O1");
+			Assert.AreEqual (2, cookies.Count, "#O2");
+
+			cookie = cookies [0];
+			Assert.AreEqual ("Weight", cookie.Name, "#P1");
+			Assert.AreEqual ("87", cookie.Value, "#P2");
+			Assert.AreEqual ("/Whatever/Do", cookie.Path, "#P3");
+			Assert.AreEqual (".mono.com", cookie.Domain, "#P4");
+			cookie = cookies [1];
+			Assert.AreEqual ("Country", cookie.Name, "#P5");
+			Assert.AreEqual ("Belgium", cookie.Value, "#P6");
+			Assert.AreEqual ("/Whatever", cookie.Path, "#P7");
+			Assert.AreEqual ("mono.com", cookie.Domain, "#P8");
+
+			cookies = container.GetCookies (new Uri ("http://mono.com/Whatever/Do"));
+			Assert.IsNotNull (cookies, "#Q1");
+			Assert.AreEqual (0, cookies.Count, "#Q2");
+
+			cookies = container.GetCookies (new Uri ("http://us.test.mono.com/Whatever/Do"));
+			Assert.IsNotNull (cookies, "#R1");
+			Assert.AreEqual (3, cookies.Count, "#R2");
+
+			cookie = cookies [0];
+			Assert.AreEqual ("Age", cookie.Name, "#S1");
+			Assert.AreEqual ("26", cookie.Value, "#S2");
+			Assert.AreEqual ("/Whatever", cookie.Path, "#S3");
+			Assert.AreEqual ("test.mono.com", cookie.Domain, "#S4");
+			cookie = cookies [1];
+			Assert.AreEqual ("Weight", cookie.Name, "#S5");
+			Assert.AreEqual ("87", cookie.Value, "#S6");
+			Assert.AreEqual ("/Whatever/Do", cookie.Path, "#S7");
+			Assert.AreEqual (".mono.com", cookie.Domain, "#S8");
+			cookie = cookies [2];
+			Assert.AreEqual ("Country", cookie.Name, "#S9");
+			Assert.AreEqual ("Belgium", cookie.Value, "#S10");
+			Assert.AreEqual ("/Whatever", cookie.Path, "#S11");
+			Assert.AreEqual ("mono.com", cookie.Domain, "#S12");
+		}
+
+		[Test]
+		public void GetCookies2c ()
 		{
 			CookieContainer container = new CookieContainer ();
-			container.GetCookies ((Uri) null);
+			container.Add (new Cookie ("Height", "178", "/Whatever", "mono.com"));
+			container.Add (new Cookie ("Town", "Brussels", "/Whatever", ".mono.com"));
+			container.Add (new Cookie ("Income", "34445", "/Whatever/", ".test.mono.com"));
+			container.Add (new Cookie ("Sex", "Male", "/WhateveR/DO", ".test.mono.com"));
+			container.SetCookies (new Uri ("http://dev.test.mono.com/Whatever/Do/You"),
+				"Country=Belgium," +
+				"Age=26; path=/Whatever/Do; domain=test.mono.com," +
+				"Weight=87; path=/");
+
+			CookieCollection cookies = container.GetCookies (new Uri ("http://us.test.mono.com/Whatever/Do/Ok"));
+			Assert.IsNotNull (cookies, "#T1");
+			Assert.AreEqual (3, cookies.Count, "#T2");
+
+			Cookie cookie = cookies [0];
+			Assert.AreEqual ("Age", cookie.Name, "#U1");
+			Assert.AreEqual ("26", cookie.Value, "#U2");
+			Assert.AreEqual ("/Whatever/Do", cookie.Path, "#U3");
+			Assert.AreEqual ("test.mono.com", cookie.Domain, "#U4");
+			cookie = cookies [1];
+			Assert.AreEqual ("Income", cookie.Name, "#U5");
+			Assert.AreEqual ("34445", cookie.Value, "#U6");
+			Assert.AreEqual ("/Whatever/", cookie.Path, "#U7");
+			Assert.AreEqual (".test.mono.com", cookie.Domain, "#U8");
+			cookie = cookies [2];
+			Assert.AreEqual ("Town", cookie.Name, "#U9");
+			Assert.AreEqual ("Brussels", cookie.Value, "#U10");
+			Assert.AreEqual ("/Whatever", cookie.Path, "#U11");
+			Assert.AreEqual (".mono.com", cookie.Domain, "#U12");
+		}
+
+		[Test]
+		public void GetCookies_Uri_Null ()
+		{
+			CookieContainer cc = new CookieContainer ();
+			try {
+				cc.GetCookies (null);
+				Assert.Fail ("#1");
+			}
+			catch (ArgumentNullException ex) {
+				Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
+				Assert.IsNull (ex.InnerException, "#3");
+				Assert.IsNotNull (ex.Message, "#4");
+				Assert.AreEqual ("uri", ex.ParamName, "#5");
+			}
+		}
+
+		[Test]
+		public void SetCookies ()
+		{
+			Uri uri = new Uri ("http://dev.test.mono.com/Whatever/Do/You");
+
+			DateTime now = DateTime.Now;
+
+			CookieContainer cc = new CookieContainer ();
+			cc.SetCookies (uri, "Country=Belgium," +
+				"Age=26;   ; path=/Whatever/Do; domain=test.mono.com," +
+				"Weight=87; path=/; ");
+			Assert.AreEqual (3, cc.Count, "#A");
+
+			CookieCollection cookies = cc.GetCookies (new Uri ("http://us.test.mono.com/Whatever/Do/Ok"));
+			Assert.IsNotNull (cookies, "#B1");
+			Assert.AreEqual (1, cookies.Count, "#B2");
+
+			Cookie cookie = cookies [0];
+			Assert.AreEqual (string.Empty, cookie.Comment, "#C:Comment");
+			Assert.IsNull (cookie.CommentUri, "#C:CommentUri");
+			Assert.IsFalse (cookie.Discard, "#C:Discard");
+			Assert.AreEqual ("test.mono.com", cookie.Domain, "#C:Domain");
+			Assert.IsFalse (cookie.Expired, "#C:Expired");
+			Assert.AreEqual (DateTime.MinValue, cookie.Expires, "#C:Expires");
+#if NET_2_0
+			Assert.IsFalse (cookie.HttpOnly, "#C:HttpOnly");
+#endif
+			Assert.AreEqual ("Age", cookie.Name, "#C:Name");
+			Assert.AreEqual ("/Whatever/Do", cookie.Path, "#C:Path");
+			Assert.IsFalse (cookie.Secure, "#C:Secure");
+			Assert.IsTrue ((cookie.TimeStamp - now).TotalMilliseconds >= 0, "#C:TimeStamp1");
+			Assert.IsTrue ((cookie.TimeStamp - now).TotalMilliseconds < 1000, "#C:TimeStamp2");
+			Assert.AreEqual ("26", cookie.Value, "#C:Value");
+			Assert.AreEqual (0, cookie.Version, "#C:Version");
+
+			cookies = cc.GetCookies (new Uri ("http://dev.test.mono.com/Whatever/Do/Ok"));
+			Assert.IsNotNull (cookies, "#D1");
+			Assert.AreEqual (2, cookies.Count, "#D2");
+
+			// our sorting is not 100% identical to MS implementation
+			for (int i = 0; i < cookies.Count; i++) {
+				cookie = cookies [i];
+				switch (cookie.Name) {
+				case "Weight":
+					Assert.AreEqual (string.Empty, cookie.Comment, "#E:Comment");
+					Assert.IsNull (cookie.CommentUri, "#E:CommentUri");
+					Assert.IsFalse (cookie.Discard, "#E:Discard");
+					Assert.AreEqual ("dev.test.mono.com", cookie.Domain, "#E:Domain");
+					Assert.IsFalse (cookie.Expired, "#E:Expired");
+					Assert.AreEqual (DateTime.MinValue, cookie.Expires, "#E:Expires");
+#if NET_2_0
+					Assert.IsFalse (cookie.HttpOnly, "#E:HttpOnly");
+#endif
+					Assert.AreEqual ("Weight", cookie.Name, "#E:Name");
+					Assert.AreEqual ("/", cookie.Path, "#E:Path");
+					Assert.IsFalse (cookie.Secure, "#E:Secure");
+					Assert.IsTrue ((cookie.TimeStamp - now).TotalMilliseconds >= 0, "#E:TimeStamp1");
+					Assert.IsTrue ((cookie.TimeStamp - now).TotalMilliseconds < 1000, "#E:TimeStamp2");
+					Assert.AreEqual ("87", cookie.Value, "#E:Value");
+					Assert.AreEqual (0, cookie.Version, "#E:Version");
+					break;
+				case "Age":
+					Assert.AreEqual (string.Empty, cookie.Comment, "#F:Comment");
+					Assert.IsNull (cookie.CommentUri, "#F:CommentUri");
+					Assert.IsFalse (cookie.Discard, "#F:Discard");
+					Assert.AreEqual ("test.mono.com", cookie.Domain, "#F:Domain");
+					Assert.IsFalse (cookie.Expired, "#F:Expired");
+					Assert.AreEqual (DateTime.MinValue, cookie.Expires, "#F:Expires");
+#if NET_2_0
+					Assert.IsFalse (cookie.HttpOnly, "#F:HttpOnly");
+#endif
+					Assert.AreEqual ("Age", cookie.Name, "#F:Name");
+					Assert.AreEqual ("/Whatever/Do", cookie.Path, "#F:Path");
+					Assert.IsFalse (cookie.Secure, "#F:Secure");
+					Assert.IsTrue ((cookie.TimeStamp - now).TotalMilliseconds >= 0, "#F:TimeStamp1");
+					Assert.IsTrue ((cookie.TimeStamp - now).TotalMilliseconds < 1000, "#F:TimeStamp2");
+					Assert.AreEqual ("26", cookie.Value, "#F:Value");
+					Assert.AreEqual (0, cookie.Version, "#F:Version");
+					break;
+				default:
+					Assert.Fail (cookie.Name);
+					break;
+				}
+			}
+
+			cookies = cc.GetCookies (uri);
+			Assert.IsNotNull (cookies, "#G1");
+			Assert.AreEqual (3, cookies.Count, "#G2");
+
+			// our sorting is not 100% identical to MS implementation
+			for (int i = 0; i < cookies.Count; i++) {
+				cookie = cookies [i];
+				switch (cookie.Name) {
+				case "Country":
+					Assert.AreEqual (string.Empty, cookie.Comment, "#H:Comment");
+					Assert.IsNull (cookie.CommentUri, "#H:CommentUri");
+					Assert.IsFalse (cookie.Discard, "#H:Discard");
+					Assert.AreEqual ("dev.test.mono.com", cookie.Domain, "#H:Domain");
+					Assert.IsFalse (cookie.Expired, "#H:Expired");
+					Assert.AreEqual (DateTime.MinValue, cookie.Expires, "#H:Expires");
+#if NET_2_0
+					Assert.IsFalse (cookie.HttpOnly, "#H:HttpOnly");
+#endif
+					Assert.AreEqual ("Country", cookie.Name, "#H:Name");
+					Assert.AreEqual ("/Whatever/Do/You", cookie.Path, "#H:Path");
+					Assert.IsFalse (cookie.Secure, "#H:Secure");
+					Assert.IsTrue ((cookie.TimeStamp - now).TotalMilliseconds >= 0, "#H:TimeStamp1");
+					Assert.IsTrue ((cookie.TimeStamp - now).TotalMilliseconds < 1000, "#H:TimeStamp2");
+					Assert.AreEqual ("Belgium", cookie.Value, "#H:Value");
+					Assert.AreEqual (0, cookie.Version, "#H:Version");
+					break;
+				case "Weight":
+					Assert.AreEqual (string.Empty, cookie.Comment, "#I:Comment");
+					Assert.IsNull (cookie.CommentUri, "#I:CommentUri");
+					Assert.IsFalse (cookie.Discard, "#I:Discard");
+					Assert.AreEqual ("dev.test.mono.com", cookie.Domain, "#I:Domain");
+					Assert.IsFalse (cookie.Expired, "#I:Expired");
+					Assert.AreEqual (DateTime.MinValue, cookie.Expires, "#I:Expires");
+#if NET_2_0
+					Assert.IsFalse (cookie.HttpOnly, "#I:HttpOnly");
+#endif
+					Assert.AreEqual ("Weight", cookie.Name, "#I:Name");
+					Assert.AreEqual ("/", cookie.Path, "#I:Path");
+					Assert.IsFalse (cookie.Secure, "#I:Secure");
+					Assert.IsTrue ((cookie.TimeStamp - now).TotalMilliseconds >= 0, "#I:TimeStamp1");
+					Assert.IsTrue ((cookie.TimeStamp - now).TotalMilliseconds < 1000, "#I:TimeStamp2");
+					Assert.AreEqual ("87", cookie.Value, "#I:Value");
+					Assert.AreEqual (0, cookie.Version, "#I:Version");
+					break;
+				case "Age":
+					Assert.AreEqual (string.Empty, cookie.Comment, "#J:Comment");
+					Assert.IsNull (cookie.CommentUri, "#J:CommentUri");
+					Assert.IsFalse (cookie.Discard, "#J:Discard");
+					Assert.AreEqual ("test.mono.com", cookie.Domain, "#J:Domain");
+					Assert.IsFalse (cookie.Expired, "#J:Expired");
+					Assert.AreEqual (DateTime.MinValue, cookie.Expires, "#J:Expires");
+#if NET_2_0
+					Assert.IsFalse (cookie.HttpOnly, "#J:HttpOnly");
+#endif
+					Assert.AreEqual ("Age", cookie.Name, "#J:Name");
+					Assert.AreEqual ("/Whatever/Do", cookie.Path, "#J:Path");
+					Assert.IsFalse (cookie.Secure, "#J:Secure");
+					Assert.IsTrue ((cookie.TimeStamp - now).TotalMilliseconds >= 0, "#J:TimeStamp1");
+					Assert.IsTrue ((cookie.TimeStamp - now).TotalMilliseconds < 1000, "#J:TimeStamp2");
+					Assert.AreEqual ("26", cookie.Value, "#J:Value");
+					Assert.AreEqual (0, cookie.Version, "#J:Version");
+					break;
+				default:
+					Assert.Fail (cookie.Name);
+					break;
+				}
+			}
+
+			cc.SetCookies (uri, "Country=,A");
+			cookies = cc.GetCookies (uri);
+			Assert.IsNotNull (cookies, "#K1");
+			Assert.AreEqual (4, cookies.Count, "#K2");
+
+			cc = new CookieContainer ();
+			cc.SetCookies (uri, "Country=,A");
+			cookies = cc.GetCookies (uri);
+			Assert.IsNotNull (cookies, "#L1");
+			Assert.AreEqual (2, cookies.Count, "#L2");
+
+			// our sorting is not 100% identical to MS implementation
+			for (int i = 0; i < cookies.Count; i++) {
+				cookie = cookies [i];
+				switch (cookie.Name) {
+				case "Country":
+					Assert.AreEqual (string.Empty, cookie.Comment, "#M:Comment");
+					Assert.IsNull (cookie.CommentUri, "#M:CommentUri");
+					Assert.IsFalse (cookie.Discard, "#M:Discard");
+					Assert.AreEqual ("dev.test.mono.com", cookie.Domain, "#M:Domain");
+					Assert.IsFalse (cookie.Expired, "#M:Expired");
+					Assert.AreEqual (DateTime.MinValue, cookie.Expires, "#M:Expires");
+#if NET_2_0
+					Assert.IsFalse (cookie.HttpOnly, "#M:HttpOnly");
+#endif
+					Assert.AreEqual ("Country", cookie.Name, "#M:Name");
+					Assert.AreEqual ("/Whatever/Do/You", cookie.Path, "#M:Path");
+					Assert.IsFalse (cookie.Secure, "#M:Secure");
+					Assert.IsTrue ((cookie.TimeStamp - now).TotalMilliseconds >= 0, "#M:TimeStamp1");
+					Assert.IsTrue ((cookie.TimeStamp - now).TotalMilliseconds < 1000, "#M:TimeStamp2");
+					Assert.AreEqual (string.Empty, cookie.Value, "#M:Value");
+					Assert.AreEqual (0, cookie.Version, "#M:Version");
+					break;
+				case "A":
+					Assert.AreEqual (string.Empty, cookie.Comment, "#N:Comment");
+					Assert.IsNull (cookie.CommentUri, "#N:CommentUri");
+					Assert.IsFalse (cookie.Discard, "#N:Discard");
+					Assert.AreEqual ("dev.test.mono.com", cookie.Domain, "#N:Domain");
+					Assert.IsFalse (cookie.Expired, "#N:Expired");
+					Assert.AreEqual (DateTime.MinValue, cookie.Expires, "#N:Expires");
+#if NET_2_0
+					Assert.IsFalse (cookie.HttpOnly, "#N:HttpOnly");
+#endif
+					Assert.AreEqual ("A", cookie.Name, "#N:Name");
+					Assert.AreEqual ("/Whatever/Do/You", cookie.Path, "#N:Path");
+					Assert.IsFalse (cookie.Secure, "#N:Secure");
+					Assert.IsTrue ((cookie.TimeStamp - now).TotalMilliseconds >= 0, "#N:TimeStamp1");
+					Assert.IsTrue ((cookie.TimeStamp - now).TotalMilliseconds < 1000, "#N:TimeStamp2");
+					Assert.AreEqual (string.Empty, cookie.Value, "#N:Value");
+					Assert.AreEqual (0, cookie.Version, "#N:Version");
+					break;
+				default:
+					Assert.Fail (cookie.Name);
+					break;
+				}
+			}
+		}
+
+		[Test]
+		public void SetCookies_CookieHeader_Empty ()
+		{
+			CookieContainer cc = new CookieContainer ();
+			cc.SetCookies (new Uri ("http://www.contoso.com"), string.Empty);
+			Assert.AreEqual (0, cc.Count);
+		}
+
+		[Test]
+		public void SetCookies_CookieHeader_Null ()
+		{
+			CookieContainer cc = new CookieContainer ();
+			try {
+				cc.SetCookies (new Uri ("http://www.contoso.com"), null);
+				Assert.Fail ("#1");
+			}
+			catch (ArgumentNullException ex) {
+				Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
+				Assert.IsNull (ex.InnerException, "#3");
+				Assert.IsNotNull (ex.Message, "#4");
+				Assert.AreEqual ("cookieHeader", ex.ParamName, "#5");
+			}
+		}
+
+		[Test]
+		public void SetCookies_CookieHeader_Invalid_1 ()
+		{
+			// cookie format error
+			CookieContainer cc = new CookieContainer ();
+			try {
+				cc.SetCookies (new Uri ("http://www.contoso.com"), "=lalala");
+				Assert.Fail ("#A1");
+			}
+			catch (CookieException ex) {
+				// An error has occurred when parsing Cookie
+				// header for Uri 'http://www.contoso.com/'
+				Assert.AreEqual (typeof (CookieException), ex.GetType (), "#A2");
+				Assert.IsNotNull (ex.InnerException, "#A3");
+				Assert.IsNotNull (ex.Message, "#A4");
+				Assert.IsTrue (ex.Message.IndexOf ("'http://www.contoso.com/'") != -1, "#A5");
+
+				// Cookie format error
+				CookieException inner = ex.InnerException as CookieException;
+				Assert.AreEqual (typeof (CookieException), inner.GetType (), "#A6");
+				Assert.IsNull (inner.InnerException, "#A7");
+				Assert.IsNotNull (inner.Message, "#A8");
+			}
+		}
+
+		[Test]
+		public void SetCookies_CookieHeader_Invalid_2 ()
+		{
+			// cookie path not part of URI path
+			CookieContainer cc = new CookieContainer ();
+			try {
+				cc.SetCookies (new Uri ("http://dev.test.mono.com/Whatever"),
+					"Age=26; path=/Whatever/Do; domain=test.mono.com");
+				Assert.Fail ("#B1");
+			}
+			catch (CookieException ex) {
+				// An error has occurred when parsing Cookie
+				// header for Uri 'http://dev.test.mono.com/Whatever'
+				Assert.AreEqual (typeof (CookieException), ex.GetType (), "#B2");
+				Assert.IsNotNull (ex.InnerException, "#B3");
+				Assert.IsNotNull (ex.Message, "#B4");
+				Assert.IsTrue (ex.Message.IndexOf ("'http://dev.test.mono.com/Whatever'") != -1, "#B5");
+
+				// The 'Path'='/Whatever/Do' part of the Cookie
+				// is invalid
+				CookieException inner = ex.InnerException as CookieException;
+				Assert.AreEqual (typeof (CookieException), inner.GetType (), "#B6");
+				Assert.IsNull (inner.InnerException, "#B7");
+				Assert.IsNotNull (inner.Message, "#B8");
+				Assert.IsTrue (inner.Message.IndexOf ("'Path'='/Whatever/Do'") != -1, "#B9");
+			}
+		}
+
+		[Test]
+		public void SetCookies_Uri_Null ()
+		{
+			CookieContainer cc = new CookieContainer ();
+			try {
+				cc.SetCookies (null, "Age=26; path=/Whatever; domain=test.mono.com");
+				Assert.Fail ("#1");
+			}
+			catch (ArgumentNullException ex) {
+				Assert.AreEqual (typeof (ArgumentNullException), ex.GetType (), "#2");
+				Assert.IsNull (ex.InnerException, "#3");
+				Assert.IsNotNull (ex.Message, "#4");
+				Assert.AreEqual ("uri", ex.ParamName, "#5");
+			}
+		}
+
+		[Test]
+#if !NET_2_0
+		[Category ("NotWorking")] // old 1.x behavior is not implemented
+#endif
+		public void SetCookies_DomainMatchesHost ()
+		{
+			CookieContainer cc = new CookieContainer ();
+#if NET_2_0
+			// domains looks identical - but "domain=test.mono.com" means "*.test.mono.com"
+			cc.SetCookies (new Uri ("http://test.mono.com/Whatever/Do"),
+				"Age=26; path=/Whatever; domain=test.mono.com");
+			CookieCollection cookies = cc.GetCookies (new Uri ("http://test.mono.com/Whatever/Do"));
+			Assert.IsNotNull (cookies, "#A1");
+			Assert.AreEqual (0, cookies.Count, "#A2");
+			cookies = cc.GetCookies (new Uri ("http://us.test.mono.com/Whatever/Do"));
+			Assert.IsNotNull (cookies, "#A3");
+			Assert.AreEqual (1, cookies.Count, "#A4");
+#else
+			try {
+				cc.SetCookies (new Uri ("http://test.mono.com/Whatever/Do"),
+					"Age=26; path=/Whatever; domain=test.mono.com");
+				Assert.Fail ("#A1");
+			} catch (CookieException ex) {
+				// An error has occurred when parsing Cookie
+				// header for Uri 'http://test.mono.com/Whatever/Do'
+				Assert.AreEqual (typeof (CookieException), ex.GetType (), "#A2");
+				Assert.IsNotNull (ex.InnerException, "#A3");
+				Assert.IsNotNull (ex.Message, "#A4");
+				Assert.IsTrue (ex.Message.IndexOf ("'http://test.mono.com/Whatever/Do'") != -1, "#A5");
+
+				// The 'Domain'='test.mono.com' part of the
+				// Cookie is invalid
+				CookieException inner = ex.InnerException as CookieException;
+				Assert.AreEqual (typeof (CookieException), inner.GetType (), "#A6");
+				Assert.IsNull (inner.InnerException, "#A7");
+				Assert.IsNotNull (inner.Message, "#A8");
+				Assert.IsTrue (inner.Message.IndexOf ("'Domain'='test.mono.com'") != -1, "#A9");
+			}
+#endif
+		}
+
+		[Test]
+		public void SetCookies_Domain_Local ()
+		{
+			CookieContainer cc;
+			CookieCollection cookies;
+
+			cc = new CookieContainer ();
+			cc.SetCookies (new Uri ("http://localhost/Whatever/Do"),
+				"Age=26; path=/Whatever; domain=.local");
+			cookies = cc.GetCookies (new Uri ("http://localhost/Whatever/Do"));
+			Assert.IsNotNull (cookies, "#A1");
+			Assert.AreEqual (0, cookies.Count, "#A2");
+			cookies = cc.GetCookies (new Uri ("http://127.0.0.1/Whatever/Do"));
+			Assert.IsNotNull (cookies, "#A3");
+			Assert.AreEqual (0, cookies.Count, "#A4");
+			cookies = cc.GetCookies (new Uri ("http://" + Dns.GetHostName () + "/Whatever/Do"));
+			Assert.IsNotNull (cookies, "#A5");
+			Assert.AreEqual (0, cookies.Count, "#A6");
+
+			cc = new CookieContainer ();
+			cc.SetCookies (new Uri ("http://127.0.0.1/Whatever/Do"),
+				"Age=26; path=/Whatever; domain=.local");
+			cookies = cc.GetCookies (new Uri ("http://localhost/Whatever/Do"));
+			Assert.IsNotNull (cookies, "#B1");
+			Assert.AreEqual (0, cookies.Count, "#B2");
+			cookies = cc.GetCookies (new Uri ("http://127.0.0.1/Whatever/Do"));
+			Assert.IsNotNull (cookies, "#B3");
+			Assert.AreEqual (0, cookies.Count, "#B4");
+			cookies = cc.GetCookies (new Uri ("http://" + Dns.GetHostName () + "/Whatever/Do"));
+			Assert.IsNotNull (cookies, "#B5");
+			Assert.AreEqual (0, cookies.Count, "#B6");
+
+			cc = new CookieContainer ();
+			cc.SetCookies (new Uri ("http://" + Dns.GetHostName () + "/Whatever/Do"),
+				"Age=26; path=/Whatever; domain=.local");
+			cookies = cc.GetCookies (new Uri ("http://localhost/Whatever/Do"));
+			Assert.IsNotNull (cookies, "#C1");
+			Assert.AreEqual (0, cookies.Count, "#C2");
+			cookies = cc.GetCookies (new Uri ("http://127.0.0.1/Whatever/Do"));
+			Assert.IsNotNull (cookies, "#C3");
+			Assert.AreEqual (0, cookies.Count, "#C4");
+			cookies = cc.GetCookies (new Uri ("http://" + Dns.GetHostName () + "/Whatever/Do"));
+			Assert.IsNotNull (cookies, "#C5");
+			Assert.AreEqual (0, cookies.Count, "#C6");
+		}
+
+		[Test]
+		public void bug421827 ()
+		{
+			CookieContainer container;
+			CookieCollection cookies;
+			Cookie cookie;
+
+			container = new CookieContainer ();
+			container.SetCookies (new Uri ("http://test.mono.com/Whatever/Do"),
+				"Country=Belgium; path=/Whatever; domain=mono.com");
+			cookies = container.GetCookies (new Uri ("http://dev.mono.com/Whatever"));
+
+			Assert.AreEqual (1, cookies.Count, "#A1");
+			cookie = cookies [0];
+			Assert.AreEqual ("Country", cookie.Name, "#A2");
+			Assert.AreEqual ("mono.com", cookie.Domain, "#A3");
+			Assert.AreEqual ("/Whatever", cookie.Path, "#A4");
+			Assert.AreEqual (0, cookie.Version, "#A5");
+
+			container = new CookieContainer ();
+			container.SetCookies (new Uri ("http://sub.mono.com/Whatever/Do"),
+				"Country=Belgium; path=/Whatever; domain=mono.com");
+			cookies = container.GetCookies (new Uri ("http://gomono.com/Whatever"));
+
+			Assert.AreEqual (0, cookies.Count, "#B");
+
+			container = new CookieContainer ();
+			container.SetCookies (new Uri ("http://sub.mono.com/Whatever/Do"),
+				"Country=Belgium; path=/Whatever; domain=mono.com");
+			cookies = container.GetCookies (new Uri ("http://amono.com/Whatever"));
+
+			Assert.AreEqual (0, cookies.Count, "#C");
+		}
+
+		[Test]
+		public void MoreThanDefaultDomainCookieLimit ()
+		{
+			CookieContainer cc = new CookieContainer ();
+			for (int i = 1; i <= CookieContainer.DefaultPerDomainCookieLimit; i++) {
+				Cookie c = new Cookie (i.ToString (), i.ToString (), "/", "mono.com");
+				cc.Add (c);
+			}
+			Assert.AreEqual (CookieContainer.DefaultPerDomainCookieLimit, cc.Count, "Count");
+			Cookie c2 = new Cookie ("uho", "21", "/", "mono.com");
+			cc.Add (c2);
+			Assert.AreEqual (CookieContainer.DefaultPerDomainCookieLimit, cc.Count, "Count");
+			// so one (yes '1' ;-) was removed
+		}
+
+		[Test]
+		public void MoreThanDefaultCookieLimit ()
+		{
+			CookieContainer cc = new CookieContainer ();
+			for (int i = 1; i <= CookieContainer.DefaultCookieLimit; i++) {
+				Cookie c = new Cookie (i.ToString (), i.ToString (), "/", "www" + i.ToString () + ".mono.com");
+				cc.Add (c);
+			}
+			Assert.AreEqual (CookieContainer.DefaultCookieLimit, cc.Count, "Count");
+			Cookie c2 = new Cookie ("uho", "301", "/", "www301.mono.com");
+			cc.Add (c2);
+			Assert.AreEqual (CookieContainer.DefaultCookieLimit, cc.Count, "Count");
+			// so one (yes '1' ;-) was removed
 		}
 	}
 }
diff --git a/mcs/class/corlib/System.IO/ChangeLog b/mcs/class/corlib/System.IO/ChangeLog
index 0c80581..591f023 100644
--- a/mcs/class/corlib/System.IO/ChangeLog
+++ b/mcs/class/corlib/System.IO/ChangeLog
@@ -1,3 +1,15 @@
+2010-02-15 Gonzalo Paniagua Javier <gonzalo at novell.com>
+
+	* StreamWriter.cs:
+	* FileStream.cs: if flushing fails when disposing the stream, make
+	sure it is closed before throwing the exception. Fixes bug #579146.
+
+2009-12-21  Sebastien Pouliot  <sebastien at ximian.com>
+
+	* File.cs (ReadAllBytes): We cannot assume that a single call to
+	Read will return all the data we require.
+	[Backport r148822]
+
 2009-10-15  Sebastien Pouliot  <sebastien at ximian.com>
 
 	* UnmanagedMemoryStream.cs: Fix some and add missing validations
diff --git a/mcs/class/corlib/System.IO/File.cs b/mcs/class/corlib/System.IO/File.cs
index 2e7ca74..44fd3a0 100644
--- a/mcs/class/corlib/System.IO/File.cs
+++ b/mcs/class/corlib/System.IO/File.cs
@@ -540,19 +540,22 @@ namespace System.IO
 		//
 		public static byte [] ReadAllBytes (string path)
 		{
-			using (FileStream s = Open (path, FileMode.Open, FileAccess.Read, FileShare.Read)){
+			using (FileStream s = OpenRead (path)) {
 				long size = s.Length;
-
-				//
-				// Is this worth supporting?
-				// 
+				// limited to 2GB according to http://msdn.microsoft.com/en-us/library/system.io.file.readallbytes.aspx
 				if (size > Int32.MaxValue)
-					throw new ArgumentException ("Reading more than 4gigs with this call is not supported");
-				
-				byte [] result = new byte [s.Length];
-
-				s.Read (result, 0, (int) size);
-
+					throw new IOException ("Reading more than 2GB with this call is not supported");
+
+				int pos = 0;
+				int count = (int) size;
+				byte [] result = new byte [size];
+				while (count > 0) {
+					int n = s.Read (result, pos, count);
+					if (n == 0)
+						throw new IOException ("Unexpected end of stream");
+					pos += n;
+					count -= n;
+				}
 				return result;
 			}
 		}
diff --git a/mcs/class/corlib/System.IO/FileStream.cs b/mcs/class/corlib/System.IO/FileStream.cs
index fcd34ce..bf16a61 100644
--- a/mcs/class/corlib/System.IO/FileStream.cs
+++ b/mcs/class/corlib/System.IO/FileStream.cs
@@ -902,8 +902,13 @@ namespace System.IO
 		protected virtual void Dispose (bool disposing)
 #endif
 		{
+			Exception exc = null;
 			if (handle != MonoIO.InvalidHandle) {
-				FlushBuffer ();
+				try {
+					FlushBuffer ();
+				} catch (Exception e) {
+					exc = e;
+				}
 
 				if (owner) {
 					MonoIOError error;
@@ -926,6 +931,8 @@ namespace System.IO
 			}
 			if (disposing)
 				GC.SuppressFinalize (this);
+ 			if (exc != null)
+ 				throw exc;
 		}
 
 #if NET_2_0
diff --git a/mcs/class/corlib/System.IO/StreamWriter.cs b/mcs/class/corlib/System.IO/StreamWriter.cs
index 00f4586..3e4349c 100644
--- a/mcs/class/corlib/System.IO/StreamWriter.cs
+++ b/mcs/class/corlib/System.IO/StreamWriter.cs
@@ -156,16 +156,28 @@ namespace System.IO {
 
 		protected override void Dispose (bool disposing) 
 		{
+			Exception exc = null;
 			if (!DisposedAlready && disposing && internalStream != null) {
-				Flush();
+				try {
+					Flush();
+				} catch (Exception e) {
+					exc = e;
+				}
 				DisposedAlready = true;
-				internalStream.Close ();
+				try {
+					internalStream.Close ();
+				} catch (Exception e) {
+					if (exc == null)
+						exc = e;
+				}
 			}
 
 			internalStream = null;
 			byte_buf = null;
 			internalEncoding = null;
 			decode_buf = null;
+			if (exc != null)
+				throw exc;
 		}
 
 		public override void Flush ()
diff --git a/mcs/class/corlib/System.Security.Cryptography/ChangeLog b/mcs/class/corlib/System.Security.Cryptography/ChangeLog
index 9bbbe52..3c6fc83 100644
--- a/mcs/class/corlib/System.Security.Cryptography/ChangeLog
+++ b/mcs/class/corlib/System.Security.Cryptography/ChangeLog
@@ -1,3 +1,9 @@
+2010-01-07  Sebastien Pouliot  <sebastien at ximian.com>
+
+	* ToBase64Transform.cs: Static-ify some methods to make it easier 
+	to use from System.Convert
+	[Backport r149171]
+
 2009-09-23  Sebastien Pouliot  <sebastien at ximian.com>
 
 	* CryptoStream.cs: Fix [Input|Output]BlockSize for custom streams.
diff --git a/mcs/class/corlib/System.Security.Cryptography/ToBase64Transform.cs b/mcs/class/corlib/System.Security.Cryptography/ToBase64Transform.cs
index 382db46..a0712ea 100644
--- a/mcs/class/corlib/System.Security.Cryptography/ToBase64Transform.cs
+++ b/mcs/class/corlib/System.Security.Cryptography/ToBase64Transform.cs
@@ -37,6 +37,8 @@ namespace System.Security.Cryptography {
 #endif
 	public class ToBase64Transform : ICryptoTransform {
 
+		private const int inputBlockSize = 3;
+		private const int outputBlockSize = 4;
 		private bool m_disposed;
 
 		public ToBase64Transform ()
@@ -57,11 +59,11 @@ namespace System.Security.Cryptography {
 		}
 
 		public int InputBlockSize {
-			get { return 3; }
+			get { return inputBlockSize; }
 		}
 
 		public int OutputBlockSize {
-			get { return 4; }
+			get { return outputBlockSize; }
 		}
 
 		public void Clear() 
@@ -120,6 +122,12 @@ namespace System.Security.Cryptography {
 //			if (inputCount != this.InputBlockSize)
 //				throw new CryptographicException (Locale.GetText ("Invalid input length"));
 
+			InternalTransformBlock (inputBuffer, inputOffset, inputCount, outputBuffer, outputOffset);
+			return this.OutputBlockSize;
+		}
+
+		internal static void InternalTransformBlock (byte[] inputBuffer, int inputOffset, int inputCount, byte[] outputBuffer, int outputOffset)
+		{
 			byte[] lookup = Base64Constants.EncodeTable;
 
 			int b1 = inputBuffer [inputOffset];
@@ -130,8 +138,6 @@ namespace System.Security.Cryptography {
 			outputBuffer [outputOffset+1] = lookup [((b1 << 4) & 0x30) | (b2 >> 4)];
 			outputBuffer [outputOffset+2] = lookup [((b2 << 2) & 0x3c) | (b3 >> 6)];
 			outputBuffer [outputOffset+3] = lookup [b3 & 0x3f];
-
-			return this.OutputBlockSize;
 		}
 
 		public byte[] TransformFinalBlock (byte[] inputBuffer, int inputOffset, int inputCount)
@@ -151,10 +157,10 @@ namespace System.Security.Cryptography {
 		}
 		
 		// Mono System.Convert depends on the ability to process multiple blocks		
-		internal byte[] InternalTransformFinalBlock (byte[] inputBuffer, int inputOffset, int inputCount)
+		internal static byte[] InternalTransformFinalBlock (byte[] inputBuffer, int inputOffset, int inputCount)
 		{
-			int blockLen = this.InputBlockSize;
-			int outLen = this.OutputBlockSize;
+			int blockLen = inputBlockSize;
+			int outLen = outputBlockSize;
 			int fullBlocks = inputCount / blockLen;
 			int tail = inputCount % blockLen;
 
@@ -165,10 +171,7 @@ namespace System.Security.Cryptography {
 			int outputOffset = 0;
 
 			for (int i = 0; i < fullBlocks; i++) {
-
-				TransformBlock (inputBuffer, inputOffset,
-				                blockLen, res, outputOffset);
-
+				InternalTransformBlock (inputBuffer, inputOffset, blockLen, res, outputOffset);
 				inputOffset += blockLen;
 				outputOffset += outLen;
 			}
diff --git a/mcs/class/corlib/System/Array.cs b/mcs/class/corlib/System/Array.cs
index 1357152..7f59f2b 100644
--- a/mcs/class/corlib/System/Array.cs
+++ b/mcs/class/corlib/System/Array.cs
@@ -2269,7 +2269,7 @@ namespace System
 
 			public void CopyTo (T [] array, int index)
 			{
-				array.CopyTo (array, index);
+				this.array.CopyTo (array, index);
 			}
 
 			IEnumerator IEnumerable.GetEnumerator ()
diff --git a/mcs/class/corlib/System/ChangeLog b/mcs/class/corlib/System/ChangeLog
index eb99cb8..f6619d3 100644
--- a/mcs/class/corlib/System/ChangeLog
+++ b/mcs/class/corlib/System/ChangeLog
@@ -1,3 +1,37 @@
+2010-01-07  Sebastien Pouliot  <sebastien at ximian.com>
+
+	* Convert.cs: Fix line endings in ToBase64String (bug #568778)
+	and also the default line length. Code changed to not require
+	a BinaryReader over a MemoryStream to reduce memory requirements.
+	[Backport r149171]
+
+2010-01-03  Zoltan Varga  <vargaz at gmail.com>
+
+	* Array.cs: Fix ArrayReadOnlyList.CopyTo. Fixes #564095.
+
+2010-01-03  Zoltan Varga  <vargaz at gmail.com>
+
+	* DateTime.cs (TryParseExact): Handle exceptions. Fixes #567857.
+
+2009-12-21  Marek Habersack  <mhabersack at novell.com>
+
+	* Int32.cs: treat terminating null as whitespace
+
+2009-12-19  Zoltan Varga  <vargaz at gmail.com>
+
+	* String.cs: Fix the various IndexOf and LastIndexOf methods so they handle
+	"" and a non-zero startIndex correctly. Fixes #566106.
+
+2009-11-26  Sebastien Pouliot  <sebastien at ximian.com>
+
+	* Random.cs: Fix case where the diff between min and max
+	is very large in Next(int,int). Fix bug #558593
+	[Backport r146993]
+
+2009-11-25  Zoltan Varga  <vargaz at gmail.com>
+
+	* Delegate.cs (GetHashCode): Fix this so it is constant.
+
 2009-10-28  Lluis Sanchez Gual  <lluis at novell.com>
 
 	* MarshalByRefObject.cs: In InitializeLifetimeService, if a lease
diff --git a/mcs/class/corlib/System/Convert.cs b/mcs/class/corlib/System/Convert.cs
index 2ade4c9..9cb28d6 100644
--- a/mcs/class/corlib/System/Convert.cs
+++ b/mcs/class/corlib/System/Convert.cs
@@ -111,7 +111,6 @@ namespace System {
 
 		// Fields
 		public static readonly object DBNull = System.DBNull.Value;
-		static ToBase64Transform toBase64Transform = new ToBase64Transform();
 	
 		[MethodImplAttribute (MethodImplOptions.InternalCall)]
 		extern static byte [] InternalFromBase64String (string str, bool allowWhitespaceOnly);
@@ -180,7 +179,7 @@ namespace System {
 				throw new ArgumentOutOfRangeException ("offsetIn + length > array.Length");
 
 			// note: normally ToBase64Transform doesn't support multiple block processing
-			byte[] outArr = toBase64Transform.InternalTransformFinalBlock (inArray, offsetIn, length);
+			byte[] outArr = ToBase64Transform.InternalTransformFinalBlock (inArray, offsetIn, length);
 			
 			char[] cOutArr = new ASCIIEncoding ().GetChars (outArr);
 			
@@ -212,7 +211,7 @@ namespace System {
 				throw new ArgumentOutOfRangeException ("offset + length > array.Length");
 			
 			// note: normally ToBase64Transform doesn't support multiple block processing
-			byte[] outArr = toBase64Transform.InternalTransformFinalBlock (inArray, offset, length);
+			byte[] outArr = ToBase64Transform.InternalTransformFinalBlock (inArray, offset, length);
 			
 			return (new ASCIIEncoding ().GetString (outArr));
 		}
@@ -237,10 +236,13 @@ namespace System {
 			if (offset > inArray.Length - length)
 				throw new ArgumentOutOfRangeException ("offset + length > array.Length");
 
+			if (length == 0)
+				return String.Empty;
+
 			if (options == Base64FormattingOptions.InsertLineBreaks)
 				return ToBase64StringBuilderWithLine (inArray, offset, length).ToString ();
 			else
-				return Encoding.ASCII.GetString (toBase64Transform.InternalTransformFinalBlock (inArray, offset, length));
+				return Encoding.ASCII.GetString (ToBase64Transform.InternalTransformFinalBlock (inArray, offset, length));
 		}
 
 		[ComVisible (false)]
@@ -257,13 +259,16 @@ namespace System {
 			if (offsetIn > inArray.Length - length)
 				throw new ArgumentOutOfRangeException ("offsetIn + length > array.Length");
 
+			if (length == 0)
+				return 0;
+
 			// note: normally ToBase64Transform doesn't support multiple block processing
 			if (options == Base64FormattingOptions.InsertLineBreaks) {
 				StringBuilder sb = ToBase64StringBuilderWithLine (inArray, offsetIn, length);
 				sb.CopyTo (0, outArray, offsetOut, sb.Length);
 				return sb.Length;
 			} else {
-				byte[] outArr = toBase64Transform.InternalTransformFinalBlock (inArray, offsetIn, length);
+				byte[] outArr = ToBase64Transform.InternalTransformFinalBlock (inArray, offsetIn, length);
 			
 				char[] cOutArr = Encoding.ASCII.GetChars (outArr);
 			
@@ -276,23 +281,30 @@ namespace System {
 			}
 		}
 
+		private const int MaxBytesPerLine = 57;
+
 		static StringBuilder ToBase64StringBuilderWithLine (byte [] inArray, int offset, int length)
 		{
-			BinaryReader reader = new BinaryReader (new MemoryStream (inArray, offset, length));
-			byte[] b = null;
-
 			StringBuilder sb = new StringBuilder ();
-			do {
-				// 54 bytes of input makes for 72 bytes of output.
-				b = reader.ReadBytes (54);
-				if (b.Length > 0)
-					sb.AppendLine (Encoding.ASCII.GetString (toBase64Transform.InternalTransformFinalBlock (b, 0, b.Length)));
-			} while (b.Length > 0);
+
+			int remainder;
+			int full = Math.DivRem (length, MaxBytesPerLine, out remainder);
+			for (int i = 0; i < full; i ++) {
+				byte[] data = ToBase64Transform.InternalTransformFinalBlock (inArray, offset, MaxBytesPerLine);
+				sb.AppendLine (Encoding.ASCII.GetString (data));
+				offset += MaxBytesPerLine;
+			}
+			// we never complete (i.e. the last line) with a new line
+			if (remainder == 0) {
+				int nll = Environment.NewLine.Length;
+				sb.Remove (sb.Length - nll, nll);
+			} else {
+				byte[] data = ToBase64Transform.InternalTransformFinalBlock (inArray, offset, remainder);
+				sb.Append (Encoding.ASCII.GetString (data));
+			}
 			return sb;
 		}
 #endif
-
-
 		
 		// ========== Boolean Conversions ========== //
 	
diff --git a/mcs/class/corlib/System/DateTime.cs b/mcs/class/corlib/System/DateTime.cs
index d550135..102e4fb 100644
--- a/mcs/class/corlib/System/DateTime.cs
+++ b/mcs/class/corlib/System/DateTime.cs
@@ -1940,11 +1940,16 @@ namespace System
 						  DateTimeStyles style,
 						  out DateTime result)
 		{
-			DateTimeFormatInfo dfi = DateTimeFormatInfo.GetInstance (provider);
+			try {
+				DateTimeFormatInfo dfi = DateTimeFormatInfo.GetInstance (provider);
 
-			bool longYear = false;
-			Exception e = null;
-			return ParseExact (s, formats, dfi, style, out result, true, ref longYear, false, ref e);
+				bool longYear = false;
+				Exception e = null;
+				return ParseExact (s, formats, dfi, style, out result, true, ref longYear, false, ref e);
+			} catch {
+				result = MinValue;
+				return false;
+			}
 		}
 #endif
 
diff --git a/mcs/class/corlib/System/Delegate.cs b/mcs/class/corlib/System/Delegate.cs
index 3dc4fe7..5ee4704 100644
--- a/mcs/class/corlib/System/Delegate.cs
+++ b/mcs/class/corlib/System/Delegate.cs
@@ -459,8 +459,7 @@ namespace System
 
 		public override int GetHashCode ()
 		{
-			// FIXME: Sync with Equals above
-			return (int)method_ptr;
+			return method.GetHashCode () ^ (m_target != null ? m_target.GetHashCode () : 0);
 		}
 
 		protected virtual MethodInfo GetMethodImpl ()
diff --git a/mcs/class/corlib/System/Int32.cs b/mcs/class/corlib/System/Int32.cs
index 712d044..aababfb 100644
--- a/mcs/class/corlib/System/Int32.cs
+++ b/mcs/class/corlib/System/Int32.cs
@@ -102,7 +102,7 @@ namespace System {
 			for (int i = position; i < len; i++){
 				char c = s [i];
 				
-				if (!Char.IsWhiteSpace (c)){
+				if (c != 0 && !Char.IsWhiteSpace (c)){
 					if (!tryParse)
 						exc = GetFormatException ();
 					return false;
diff --git a/mcs/class/corlib/System/Random.cs b/mcs/class/corlib/System/Random.cs
index ac1e0b9..d8c85ba 100644
--- a/mcs/class/corlib/System/Random.cs
+++ b/mcs/class/corlib/System/Random.cs
@@ -124,7 +124,7 @@ namespace System
 			if (diff <= 1)
 				return minValue;
 
-			return (int)(Sample () * diff) + minValue;
+			return (int)((uint)(Sample () * diff) + minValue);
 		}
 
 		public virtual void NextBytes (byte [] buffer)
diff --git a/mcs/class/corlib/System/String.cs b/mcs/class/corlib/System/String.cs
index 6f8b101..525c90b 100644
--- a/mcs/class/corlib/System/String.cs
+++ b/mcs/class/corlib/System/String.cs
@@ -930,7 +930,7 @@ namespace System
 			if (valueLen <= 1) {
 				if (valueLen == 1)
 					return IndexOfUnchecked (value[0], startIndex, count);
-				return 0;
+				return startIndex;
 			}
 
 			fixed (char* thisptr = this, valueptr = value) {
@@ -958,7 +958,7 @@ namespace System
 				return -1;
 
 			if (valueLen == 0)
-				return 0;
+				return startIndex;
 
 			fixed (char* thisptr = this, valueptr = value) {
 				char* ap = thisptr + startIndex;
@@ -1036,7 +1036,7 @@ namespace System
 			if (valueLen <= 1) {
 				if (valueLen == 1)
 					return LastIndexOfUnchecked (value[0], startIndex, count);
-				return 0;
+				return startIndex;
 			}
 
 			fixed (char* thisptr = this, valueptr = value) {
@@ -1064,7 +1064,7 @@ namespace System
 				return -1;
 
 			if (valueLen == 0)
-				return 0;
+				return startIndex;
 
 			fixed (char* thisptr = this, valueptr = value) {
 				char* ap = thisptr + startIndex - valueLen + 1;
diff --git a/mcs/class/corlib/Test/System/ByteTest.cs b/mcs/class/corlib/Test/System/ByteTest.cs
index 7e5054e..f6ec8fb 100644
--- a/mcs/class/corlib/Test/System/ByteTest.cs
+++ b/mcs/class/corlib/Test/System/ByteTest.cs
@@ -187,6 +187,11 @@ public class ByteTest : Assertion
 		catch (Exception e) {
 			Assert(NumberFormatInfo.CurrentInfo.CurrencySymbol+"42, NumberStyles.Integer, Nfi", typeof(FormatException) == e.GetType());
 		}
+
+		Assert (734 == Int64.Parse ("734\0"));
+		Assert (734 == Int64.Parse ("734\0\0\0    \0"));
+		Assert (734 == Int64.Parse ("734\0\0\0    "));
+		Assert (734 == Int64.Parse ("734\0\0\0"));
 	}
 
 	[Test]
diff --git a/mcs/class/corlib/Test/System/ChangeLog b/mcs/class/corlib/Test/System/ChangeLog
index 3325b2a..9e296f1 100644
--- a/mcs/class/corlib/Test/System/ChangeLog
+++ b/mcs/class/corlib/Test/System/ChangeLog
@@ -1,12 +1,13 @@
-<<<<<<< HEAD
-2009-09-17 Rodrigo Kumpera  <rkumpera at novell.com>
-=======
+2009-12-21  Marek Habersack  <mhabersack at novell.com>
+
+	* Int32Test.cs, Int64Test.cs, Int16Test.cs, ByteTest.cs: added
+	tests for formats with trailing null chars.
+
 2009-07-12  Gert Driesen  <drieseng at users.sourceforge.net>
 
 	* TypeTest.cs: Enabled test that was failing due to regression.
 
 2009-07-10  Zoltan Varga  <vargaz at gmail.com>
->>>>>>> bd6ddee... * BinderTest.cs: Added SelectMethod/BindToMethod tests for methods
 
 	* ArrayTest.cs: Fix the build.
 
diff --git a/mcs/class/corlib/Test/System/Int16Test.cs b/mcs/class/corlib/Test/System/Int16Test.cs
index aa4285e..13d487d 100644
--- a/mcs/class/corlib/Test/System/Int16Test.cs
+++ b/mcs/class/corlib/Test/System/Int16Test.cs
@@ -152,6 +152,11 @@ public class Int16Test : Assertion
 		catch (Exception e) {
 			Assert(typeof(FormatException) == e.GetType());
 		}
+
+		Assert (7345 == Int64.Parse ("7345\0"));
+		Assert (7345 == Int64.Parse ("7345\0\0\0    \0"));
+		Assert (7345 == Int64.Parse ("7345\0\0\0    "));
+		Assert (7345 == Int64.Parse ("7345\0\0\0"));
 	}
 	
 	public void TestToString()
diff --git a/mcs/class/corlib/Test/System/Int32Test.cs b/mcs/class/corlib/Test/System/Int32Test.cs
index 71ec6d3..93c2c8b 100644
--- a/mcs/class/corlib/Test/System/Int32Test.cs
+++ b/mcs/class/corlib/Test/System/Int32Test.cs
@@ -228,6 +228,11 @@ public class Int32Test : Assertion
 		// numbers, but we should not crash
 		
 		Int32.Parse ("123", new DateTimeFormatInfo ());
+
+		Assert (734561 == Int32.Parse ("734561\0"));
+		Assert (734561 == Int32.Parse ("734561\0\0\0    \0"));
+		Assert (734561 == Int32.Parse ("734561\0\0\0    "));
+		Assert (734561 == Int32.Parse ("734561\0\0\0"));
 	}
 
 #if NET_2_0	
diff --git a/mcs/class/corlib/Test/System/Int64Test.cs b/mcs/class/corlib/Test/System/Int64Test.cs
index a377f94..0ea652a 100644
--- a/mcs/class/corlib/Test/System/Int64Test.cs
+++ b/mcs/class/corlib/Test/System/Int64Test.cs
@@ -303,6 +303,11 @@ public class Int64Test : Assertion
 	} catch (Exception e) {
 		Assert("#20", typeof(OverflowException) == e.GetType());
 	}
+
+	Assert (734561 == Int64.Parse ("734561\0"));
+	Assert (734561 == Int64.Parse ("734561\0\0\0    \0"));
+	Assert (734561 == Int64.Parse ("734561\0\0\0    "));
+	Assert (734561 == Int64.Parse ("734561\0\0\0"));
     }
 
     public void TestToString() 
diff --git a/mcs/class/corlib/Test/System/StringTest.cs b/mcs/class/corlib/Test/System/StringTest.cs
index aebb6dc..7d09e1c 100644
--- a/mcs/class/corlib/Test/System/StringTest.cs
+++ b/mcs/class/corlib/Test/System/StringTest.cs
@@ -1848,6 +1848,14 @@ public class StringTest : TestCase
 		AssertEquals ("#J10", -1, string.Empty.IndexOf ("abc", 0, 0));
 	}
 
+#if NET_2_0
+       [Test]
+       public void IndexOf7_Empty () {
+		   AssertEquals (1, "FOO".IndexOf ("", 1, 2, StringComparison.Ordinal));
+		   AssertEquals (1, "FOO".IndexOf ("", 1, 2, StringComparison.OrdinalIgnoreCase));
+       }
+#endif
+
 	[Test] // IndexOf (String, Int32, Int32)
 	public void IndexOf7_Count_Negative ()
 	{
diff --git a/mcs/class/lib/monolite/System.Xml.dll b/mcs/class/lib/monolite/System.Xml.dll
index 2fa544d..10491ce 100755
Binary files a/mcs/class/lib/monolite/System.Xml.dll and b/mcs/class/lib/monolite/System.Xml.dll differ
diff --git a/mcs/class/lib/monolite/System.dll b/mcs/class/lib/monolite/System.dll
index 9883db5..8d26862 100755
Binary files a/mcs/class/lib/monolite/System.dll and b/mcs/class/lib/monolite/System.dll differ
diff --git a/mcs/class/lib/monolite/mcs.exe b/mcs/class/lib/monolite/mcs.exe
index 8d42390..e52ee53 100755
Binary files a/mcs/class/lib/monolite/mcs.exe and b/mcs/class/lib/monolite/mcs.exe differ
diff --git a/mcs/class/lib/monolite/mscorlib.dll b/mcs/class/lib/monolite/mscorlib.dll
index 07e50b7..6e25673 100755
Binary files a/mcs/class/lib/monolite/mscorlib.dll and b/mcs/class/lib/monolite/mscorlib.dll differ
diff --git a/mcs/tools/monodoc/ChangeLog b/mcs/tools/monodoc/ChangeLog
index cb331e0..d4c45b6 100644
--- a/mcs/tools/monodoc/ChangeLog
+++ b/mcs/tools/monodoc/ChangeLog
@@ -1,3 +1,9 @@
+2009-12-30  Jonathan Pryor  <jpryor at novell.com>
+
+	* Lucene.Net/Lucene.Net/QueryParser/QueryParser.cs: Fix crash when 
+	  searching for "()".  Fixes #423853.  
+	  Thanks to Benoît Tuduri <bento78 at gmail.com>.
+
 2009-02-25  Jonathan Pryor  <jonpryor at vt.edu>
 
 	* Makefile: 
diff --git a/mcs/tools/monodoc/Lucene.Net/Lucene.Net/QueryParser/QueryParser.cs b/mcs/tools/monodoc/Lucene.Net/Lucene.Net/QueryParser/QueryParser.cs
index 7108ba8..bfb8865 100644
--- a/mcs/tools/monodoc/Lucene.Net/Lucene.Net/QueryParser/QueryParser.cs
+++ b/mcs/tools/monodoc/Lucene.Net/Lucene.Net/QueryParser/QueryParser.cs
@@ -108,7 +108,7 @@ namespace Monodoc.Lucene.Net.QueryParsers
 		static public Query Parse(System.String query, System.String field, Analyzer analyzer)
 		{
 			QueryParser parser = new QueryParser(field, analyzer);
-			return parser.Parse(query);
+			return parser.Parse(Escape(query));
 		}
 		
 		/// <summary>Constructs a query parser.</summary>
diff --git a/missing b/missing
index 1c8ff70..28055d2 100755
--- a/missing
+++ b/missing
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Common stub for a few missing GNU programs while installing.
 
-scriptversion=2006-05-10.23
+scriptversion=2009-04-28.21; # UTC
 
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
-#   Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006,
+# 2008, 2009 Free Software Foundation, Inc.
 # Originally by Fran,cois Pinard <pinard at iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -18,9 +18,7 @@ scriptversion=2006-05-10.23
 # GNU General Public License for more details.
 
 # You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-# 02110-1301, USA.
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 # As a special exception to the GNU General Public License, if you
 # distribute this file as part of a program that contains a
@@ -89,6 +87,9 @@ Supported PROGRAM values:
   tar          try tar, gnutar, gtar, then tar without non-portable flags
   yacc         create \`y.tab.[ch]', if possible, from existing .[ch]
 
+Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and
+\`g' are ignored when checking the name.
+
 Send bug reports to <bug-automake at gnu.org>."
     exit $?
     ;;
@@ -106,15 +107,22 @@ Send bug reports to <bug-automake at gnu.org>."
 
 esac
 
+# normalize program name to check for.
+program=`echo "$1" | sed '
+  s/^gnu-//; t
+  s/^gnu//; t
+  s/^g//; t'`
+
 # Now exit if we have it, but it failed.  Also exit now if we
 # don't have it and --version was passed (most likely to detect
-# the program).
+# the program).  This is about non-GNU programs, so use $1 not
+# $program.
 case $1 in
-  lex|yacc)
+  lex*|yacc*)
     # Not GNU programs, they don't have --version.
     ;;
 
-  tar)
+  tar*)
     if test -n "$run"; then
        echo 1>&2 "ERROR: \`tar' requires --run"
        exit 1
@@ -138,7 +146,7 @@ esac
 
 # If it does not exist, or fails to run (possibly an outdated version),
 # try to emulate it.
-case $1 in
+case $program in
   aclocal*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
@@ -148,7 +156,7 @@ WARNING: \`$1' is $msg.  You should only need it if
     touch aclocal.m4
     ;;
 
-  autoconf)
+  autoconf*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
          you modified \`${configure_ac}'.  You might want to install the
@@ -157,7 +165,7 @@ WARNING: \`$1' is $msg.  You should only need it if
     touch configure
     ;;
 
-  autoheader)
+  autoheader*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
          you modified \`acconfig.h' or \`${configure_ac}'.  You might want
@@ -187,7 +195,7 @@ WARNING: \`$1' is $msg.  You should only need it if
 	   while read f; do touch "$f"; done
     ;;
 
-  autom4te)
+  autom4te*)
     echo 1>&2 "\
 WARNING: \`$1' is needed, but is $msg.
          You might have modified some files without having the
@@ -210,7 +218,7 @@ WARNING: \`$1' is needed, but is $msg.
     fi
     ;;
 
-  bison|yacc)
+  bison*|yacc*)
     echo 1>&2 "\
 WARNING: \`$1' $msg.  You should only need it if
          you modified a \`.y' file.  You may need the \`Bison' package
@@ -240,7 +248,7 @@ WARNING: \`$1' $msg.  You should only need it if
     fi
     ;;
 
-  lex|flex)
+  lex*|flex*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
          you modified a \`.l' file.  You may need the \`Flex' package
@@ -263,7 +271,7 @@ WARNING: \`$1' is $msg.  You should only need it if
     fi
     ;;
 
-  help2man)
+  help2man*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
 	 you modified a dependency of a manual page.  You may need the
@@ -277,11 +285,11 @@ WARNING: \`$1' is $msg.  You should only need it if
     else
 	test -z "$file" || exec >$file
 	echo ".ab help2man is required to generate this page"
-	exit 1
+	exit $?
     fi
     ;;
 
-  makeinfo)
+  makeinfo*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
          you modified a \`.texi' or \`.texinfo' file, or any other file
@@ -310,7 +318,7 @@ WARNING: \`$1' is $msg.  You should only need it if
     touch $file
     ;;
 
-  tar)
+  tar*)
     shift
 
     # We have already tried tar in the generic part.
@@ -363,5 +371,6 @@ exit 0
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
 # time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-end: "$"
+# time-stamp-time-zone: "UTC"
+# time-stamp-end: "; # UTC"
 # End:
diff --git a/mono/Makefile.in b/mono/Makefile.in
index 3d28ff0..eb92719 100644
--- a/mono/Makefile.in
+++ b/mono/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,8 +16,9 @@
 @SET_MAKE@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -46,6 +48,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -57,10 +60,38 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 	ps-recursive uninstall-recursive
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+	distdir
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
 API_VER = @API_VER@
@@ -151,6 +182,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -251,14 +283,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -276,6 +308,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -307,7 +340,7 @@ $(RECURSIVE_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done; \
 	if test "$$dot_seen" = "no"; then \
@@ -341,16 +374,16 @@ $(RECURSIVE_CLEAN_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done && test -z "$$fail"
 tags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 	done
 ctags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
 	done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -358,14 +391,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
 	  include_option=--etags-include; \
@@ -377,7 +410,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test ! -f $$subdir/TAGS || \
-	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
@@ -386,29 +419,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -429,29 +467,44 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
-	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test -d "$(distdir)/$$subdir" \
 	    || $(MKDIR_P) "$(distdir)/$$subdir" \
 	    || exit 1; \
-	    distdir=`$(am__cd) $(distdir) && pwd`; \
-	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
-	    (cd $$subdir && \
+	  fi; \
+	done
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+	    $(am__relativize); \
+	    new_distdir=$$reldir; \
+	    dir1=$$subdir; dir2="$(top_distdir)"; \
+	    $(am__relativize); \
+	    new_top_distdir=$$reldir; \
+	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+	    ($(am__cd) $$subdir && \
 	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$top_distdir" \
-	        distdir="$$distdir/$$subdir" \
+	        top_distdir="$$new_top_distdir" \
+	        distdir="$$new_distdir" \
 		am__remove_distdir=: \
 		am__skip_length_check=: \
+		am__skip_mode_fix=: \
 	        distdir) \
 	      || exit 1; \
 	  fi; \
@@ -481,6 +534,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -499,6 +553,8 @@ dvi-am:
 
 html: html-recursive
 
+html-am:
+
 info: info-recursive
 
 info-am:
@@ -507,18 +563,28 @@ install-data-am:
 
 install-dvi: install-dvi-recursive
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-recursive
 
+install-html-am:
+
 install-info: install-info-recursive
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-recursive
 
+install-pdf-am:
+
 install-ps: install-ps-recursive
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -539,8 +605,8 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
-	install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+	install-am install-strip tags-recursive
 
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
 	all all-am check check-am clean clean-generic clean-libtool \
@@ -556,6 +622,7 @@ uninstall-am:
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
 	uninstall uninstall-am
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/arch/Makefile.in b/mono/arch/Makefile.in
index 885d8fd..e1fc4e9 100644
--- a/mono/arch/Makefile.in
+++ b/mono/arch/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -47,6 +49,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 @INTERP_SUPPORTED_TRUE at libmonoarch_la_DEPENDENCIES = $(arch_target)/libmonoarch-$(arch_target).la
 am__libmonoarch_la_SOURCES_DIST = unknown.c
@@ -56,6 +59,7 @@ libmonoarch_la_OBJECTS = $(am_libmonoarch_la_OBJECTS)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -73,9 +77,37 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 	ps-recursive uninstall-recursive
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+	distdir
 ETAGS = etags
 CTAGS = ctags
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
 API_VER = @API_VER@
@@ -166,6 +198,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -273,14 +306,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/arch/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/arch/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/arch/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/arch/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -298,6 +331,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
@@ -320,21 +354,21 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
@@ -369,7 +403,7 @@ $(RECURSIVE_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done; \
 	if test "$$dot_seen" = "no"; then \
@@ -403,16 +437,16 @@ $(RECURSIVE_CLEAN_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done && test -z "$$fail"
 tags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 	done
 ctags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
 	done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -420,14 +454,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
 	  include_option=--etags-include; \
@@ -439,7 +473,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test ! -f $$subdir/TAGS || \
-	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
@@ -448,29 +482,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -491,29 +530,44 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
-	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test -d "$(distdir)/$$subdir" \
 	    || $(MKDIR_P) "$(distdir)/$$subdir" \
 	    || exit 1; \
-	    distdir=`$(am__cd) $(distdir) && pwd`; \
-	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
-	    (cd $$subdir && \
+	  fi; \
+	done
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+	    $(am__relativize); \
+	    new_distdir=$$reldir; \
+	    dir1=$$subdir; dir2="$(top_distdir)"; \
+	    $(am__relativize); \
+	    new_top_distdir=$$reldir; \
+	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+	    ($(am__cd) $$subdir && \
 	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$top_distdir" \
-	        distdir="$$distdir/$$subdir" \
+	        top_distdir="$$new_top_distdir" \
+	        distdir="$$new_distdir" \
 		am__remove_distdir=: \
 		am__skip_length_check=: \
+		am__skip_mode_fix=: \
 	        distdir) \
 	      || exit 1; \
 	  fi; \
@@ -543,6 +597,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -564,6 +619,8 @@ dvi-am:
 
 html: html-recursive
 
+html-am:
+
 info: info-recursive
 
 info-am:
@@ -572,18 +629,28 @@ install-data-am:
 
 install-dvi: install-dvi-recursive
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-recursive
 
+install-html-am:
+
 install-info: install-info-recursive
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-recursive
 
+install-pdf-am:
+
 install-ps: install-ps-recursive
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -606,8 +673,8 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
-	install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+	install-am install-strip tags-recursive
 
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
 	all all-am check check-am clean clean-generic clean-libtool \
@@ -624,6 +691,7 @@ uninstall-am:
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
 	uninstall uninstall-am
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/arch/alpha/Makefile.in b/mono/arch/alpha/Makefile.in
index 4c49961..801a451 100644
--- a/mono/arch/alpha/Makefile.in
+++ b/mono/arch/alpha/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,8 +18,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -49,6 +51,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 libmonoarch_alpha_la_LIBADD =
 am_libmonoarch_alpha_la_OBJECTS = tramp.lo
@@ -60,6 +63,7 @@ test_LDADD = $(LDADD)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -161,6 +165,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -262,14 +267,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/arch/alpha/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/arch/alpha/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/arch/alpha/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/arch/alpha/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -287,6 +292,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
@@ -300,11 +306,13 @@ libmonoarch-alpha.la: $(libmonoarch_alpha_la_OBJECTS) $(libmonoarch_alpha_la_DEP
 	$(LINK)  $(libmonoarch_alpha_la_OBJECTS) $(libmonoarch_alpha_la_LIBADD) $(LIBS)
 
 clean-noinstPROGRAMS:
-	@list='$(noinst_PROGRAMS)'; for p in $$list; do \
-	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  echo " rm -f $$p $$f"; \
-	  rm -f $$p $$f ; \
-	done
+	@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
 test$(EXEEXT): $(test_OBJECTS) $(test_DEPENDENCIES) 
 	@rm -f test$(EXEEXT)
 	$(LINK) $(test_OBJECTS) $(test_LDADD) $(LIBS)
@@ -320,21 +328,21 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
@@ -350,14 +358,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -365,29 +373,34 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -408,13 +421,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -442,6 +459,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -463,6 +481,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -471,18 +491,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -521,6 +551,7 @@ uninstall-am:
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags uninstall uninstall-am
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/arch/amd64/Makefile.in b/mono/arch/amd64/Makefile.in
index 4c2d66b..4885e1a 100644
--- a/mono/arch/amd64/Makefile.in
+++ b/mono/arch/amd64/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -47,6 +49,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 libmonoarch_amd64_la_LIBADD =
 am_libmonoarch_amd64_la_OBJECTS = tramp.lo
@@ -54,6 +57,7 @@ libmonoarch_amd64_la_OBJECTS = $(am_libmonoarch_amd64_la_OBJECTS)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -155,6 +159,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -256,14 +261,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/arch/amd64/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/arch/amd64/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/arch/amd64/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/arch/amd64/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -281,6 +286,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
@@ -303,21 +309,21 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
@@ -333,14 +339,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -348,29 +354,34 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -391,13 +402,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -425,6 +440,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -446,6 +462,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -454,18 +472,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -503,6 +531,7 @@ uninstall-am:
 	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
 	pdf pdf-am ps ps-am tags uninstall uninstall-am
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/arch/arm/Makefile.in b/mono/arch/arm/Makefile.in
index 0b8bc91..de4f034 100644
--- a/mono/arch/arm/Makefile.in
+++ b/mono/arch/arm/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -47,6 +49,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 libmonoarch_arm_la_LIBADD =
 am__objects_1 =
@@ -56,6 +59,7 @@ libmonoarch_arm_la_OBJECTS = $(am_libmonoarch_arm_la_OBJECTS)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -157,6 +161,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -270,14 +275,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/arch/arm/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/arch/arm/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/arch/arm/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/arch/arm/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -295,6 +300,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
@@ -318,21 +324,21 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
@@ -348,14 +354,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -363,29 +369,34 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -406,13 +417,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -443,6 +458,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -465,6 +481,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -473,18 +491,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -507,7 +535,7 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: install-am install-strip
+.MAKE: all check install install-am install-strip
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
 	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
@@ -534,6 +562,7 @@ arm_fpamacros.h: fpaops.sh fpam_macros.th fpa_macros.th
 arm_vfpmacros.h: vfpops.sh vfpm_macros.th vfp_macros.th
 	(cd $(srcdir); bash ./vfpops.sh) > $@t
 	mv $@t $@
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/arch/hppa/Makefile.in b/mono/arch/hppa/Makefile.in
index d37bcc1..b1fa09e 100644
--- a/mono/arch/hppa/Makefile.in
+++ b/mono/arch/hppa/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -47,6 +49,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 libmonoarch_hppa_la_LIBADD =
 am_libmonoarch_hppa_la_OBJECTS = tramp.lo
@@ -54,6 +57,7 @@ libmonoarch_hppa_la_OBJECTS = $(am_libmonoarch_hppa_la_OBJECTS)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -155,6 +159,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -256,14 +261,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/arch/hppa/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/arch/hppa/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/arch/hppa/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/arch/hppa/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -281,6 +286,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
@@ -303,21 +309,21 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
@@ -333,14 +339,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -348,29 +354,34 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -391,13 +402,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -425,6 +440,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -446,6 +462,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -454,18 +472,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -503,6 +531,7 @@ uninstall-am:
 	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
 	pdf pdf-am ps ps-am tags uninstall uninstall-am
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/arch/ia64/Makefile.in b/mono/arch/ia64/Makefile.in
index a9c02e4..fe956c3 100644
--- a/mono/arch/ia64/Makefile.in
+++ b/mono/arch/ia64/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,8 +16,9 @@
 @SET_MAKE@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -46,6 +48,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -139,6 +142,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -237,14 +241,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/arch/ia64/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/arch/ia64/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/arch/ia64/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/arch/ia64/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -262,6 +266,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -291,13 +296,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -325,6 +334,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -343,6 +353,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -351,18 +363,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -396,6 +418,7 @@ uninstall-am:
 	maintainer-clean-generic mostlyclean mostlyclean-generic \
 	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/arch/mips/Makefile.in b/mono/arch/mips/Makefile.in
index 201dea0..8bca0b5 100644
--- a/mono/arch/mips/Makefile.in
+++ b/mono/arch/mips/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,8 +18,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -49,6 +51,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 libmonoarch_mips_la_LIBADD =
 am_libmonoarch_mips_la_OBJECTS =
@@ -60,6 +63,7 @@ test_LDADD = $(LDADD)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -161,6 +165,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -262,14 +267,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/arch/mips/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/arch/mips/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/arch/mips/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/arch/mips/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -287,6 +292,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
@@ -300,11 +306,13 @@ libmonoarch-mips.la: $(libmonoarch_mips_la_OBJECTS) $(libmonoarch_mips_la_DEPEND
 	$(LINK)  $(libmonoarch_mips_la_OBJECTS) $(libmonoarch_mips_la_LIBADD) $(LIBS)
 
 clean-noinstPROGRAMS:
-	@list='$(noinst_PROGRAMS)'; for p in $$list; do \
-	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  echo " rm -f $$p $$f"; \
-	  rm -f $$p $$f ; \
-	done
+	@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
 test$(EXEEXT): $(test_OBJECTS) $(test_DEPENDENCIES) 
 	@rm -f test$(EXEEXT)
 	$(LINK) $(test_OBJECTS) $(test_LDADD) $(LIBS)
@@ -319,21 +327,21 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
@@ -349,14 +357,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -364,29 +372,34 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -407,13 +420,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -441,6 +458,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -462,6 +480,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -470,18 +490,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -520,6 +550,7 @@ uninstall-am:
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags uninstall uninstall-am
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/arch/ppc/Makefile.in b/mono/arch/ppc/Makefile.in
index 5320488..73c2d1c 100644
--- a/mono/arch/ppc/Makefile.in
+++ b/mono/arch/ppc/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,8 +18,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -49,6 +51,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 libmonoarch_ppc_la_LIBADD =
 am__libmonoarch_ppc_la_SOURCES_DIST = tramp.c ppc-codegen.h
@@ -62,6 +65,7 @@ test_LDADD = $(LDADD)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -163,6 +167,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -264,14 +269,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/arch/ppc/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/arch/ppc/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/arch/ppc/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/arch/ppc/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -289,6 +294,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
@@ -302,11 +308,13 @@ libmonoarch-ppc.la: $(libmonoarch_ppc_la_OBJECTS) $(libmonoarch_ppc_la_DEPENDENC
 	$(LINK) $(am_libmonoarch_ppc_la_rpath) $(libmonoarch_ppc_la_OBJECTS) $(libmonoarch_ppc_la_LIBADD) $(LIBS)
 
 clean-noinstPROGRAMS:
-	@list='$(noinst_PROGRAMS)'; for p in $$list; do \
-	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  echo " rm -f $$p $$f"; \
-	  rm -f $$p $$f ; \
-	done
+	@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
 test$(EXEEXT): $(test_OBJECTS) $(test_DEPENDENCIES) 
 	@rm -f test$(EXEEXT)
 	$(LINK) $(test_OBJECTS) $(test_LDADD) $(LIBS)
@@ -322,21 +330,21 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
@@ -352,14 +360,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -367,29 +375,34 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -410,13 +423,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -444,6 +461,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -465,6 +483,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -473,18 +493,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -523,6 +553,7 @@ uninstall-am:
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags uninstall uninstall-am
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/arch/s390/Makefile.in b/mono/arch/s390/Makefile.in
index 0d66d2d..3239cc7 100644
--- a/mono/arch/s390/Makefile.in
+++ b/mono/arch/s390/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -47,6 +49,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 libmonoarch_s390_la_LIBADD =
 am_libmonoarch_s390_la_OBJECTS = tramp.lo
@@ -54,6 +57,7 @@ libmonoarch_s390_la_OBJECTS = $(am_libmonoarch_s390_la_OBJECTS)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -155,6 +159,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -256,14 +261,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/arch/s390/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/arch/s390/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/arch/s390/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/arch/s390/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -281,6 +286,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
@@ -303,21 +309,21 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
@@ -333,14 +339,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -348,29 +354,34 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -391,13 +402,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -425,6 +440,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -446,6 +462,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -454,18 +472,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -503,6 +531,7 @@ uninstall-am:
 	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
 	pdf pdf-am ps ps-am tags uninstall uninstall-am
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/arch/s390x/Makefile.in b/mono/arch/s390x/Makefile.in
index 73b0830..32b54d2 100644
--- a/mono/arch/s390x/Makefile.in
+++ b/mono/arch/s390x/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -47,6 +49,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 libmonoarch_s390x_la_LIBADD =
 am_libmonoarch_s390x_la_OBJECTS = tramp.lo
@@ -54,6 +57,7 @@ libmonoarch_s390x_la_OBJECTS = $(am_libmonoarch_s390x_la_OBJECTS)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -155,6 +159,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -256,14 +261,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/arch/s390x/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/arch/s390x/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/arch/s390x/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/arch/s390x/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -281,6 +286,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
@@ -303,21 +309,21 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
@@ -333,14 +339,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -348,29 +354,34 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -391,13 +402,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -425,6 +440,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -446,6 +462,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -454,18 +472,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -503,6 +531,7 @@ uninstall-am:
 	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
 	pdf pdf-am ps ps-am tags uninstall uninstall-am
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/arch/sparc/Makefile.in b/mono/arch/sparc/Makefile.in
index aad6ee1..74dfd55 100644
--- a/mono/arch/sparc/Makefile.in
+++ b/mono/arch/sparc/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -47,6 +49,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 libmonoarch_sparc_la_LIBADD =
 am_libmonoarch_sparc_la_OBJECTS = tramp.lo
@@ -54,6 +57,7 @@ libmonoarch_sparc_la_OBJECTS = $(am_libmonoarch_sparc_la_OBJECTS)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -155,6 +159,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -256,14 +261,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/arch/sparc/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/arch/sparc/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/arch/sparc/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/arch/sparc/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -281,6 +286,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
@@ -303,21 +309,21 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
@@ -333,14 +339,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -348,29 +354,34 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -391,13 +402,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -425,6 +440,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -446,6 +462,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -454,18 +472,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -503,6 +531,7 @@ uninstall-am:
 	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
 	pdf pdf-am ps ps-am tags uninstall uninstall-am
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/arch/x86/Makefile.in b/mono/arch/x86/Makefile.in
index aae15e3..08b9bae 100644
--- a/mono/arch/x86/Makefile.in
+++ b/mono/arch/x86/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -47,6 +49,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 libmonoarch_x86_la_LIBADD =
 am__libmonoarch_x86_la_SOURCES_DIST = tramp.c x86-codegen.h
@@ -56,6 +59,7 @@ libmonoarch_x86_la_OBJECTS = $(am_libmonoarch_x86_la_OBJECTS)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -157,6 +161,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -258,14 +263,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/arch/x86/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/arch/x86/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/arch/x86/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/arch/x86/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -283,6 +288,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
@@ -305,21 +311,21 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
@@ -335,14 +341,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -350,29 +356,34 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -393,13 +404,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -427,6 +442,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -448,6 +464,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -456,18 +474,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -505,6 +533,7 @@ uninstall-am:
 	mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
 	pdf pdf-am ps ps-am tags uninstall uninstall-am
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/benchmark/Makefile.in b/mono/benchmark/Makefile.in
index a787b85..22ab5ec 100644
--- a/mono/benchmark/Makefile.in
+++ b/mono/benchmark/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,8 +16,9 @@
 @SET_MAKE@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -46,6 +48,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -139,6 +142,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -282,14 +286,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/benchmark/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/benchmark/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/benchmark/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/benchmark/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -307,6 +311,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -336,13 +341,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -370,6 +379,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -388,6 +398,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -396,18 +408,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -463,6 +485,7 @@ test: $(TEST_PROG) $(TESTSI)
 
 check:
 	@echo no check yet
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/cil/Makefile.in b/mono/cil/Makefile.in
index dca34b8..b6286c6 100644
--- a/mono/cil/Makefile.in
+++ b/mono/cil/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -48,6 +50,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
@@ -55,10 +58,23 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(defdir)" "$(DESTDIR)$(xmldir)"
-defDATA_INSTALL = $(INSTALL_DATA)
-xmlDATA_INSTALL = $(INSTALL_DATA)
 DATA = $(def_DATA) $(xml_DATA)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 ACLOCAL = @ACLOCAL@
@@ -151,6 +167,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -253,14 +270,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/cil/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/cil/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/cil/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/cil/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -278,6 +295,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -287,37 +305,43 @@ clean-libtool:
 install-defDATA: $(def_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(defdir)" || $(MKDIR_P) "$(DESTDIR)$(defdir)"
-	@list='$(def_DATA)'; for p in $$list; do \
+	@list='$(def_DATA)'; test -n "$(defdir)" || list=; \
+	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  f=$(am__strip_dir) \
-	  echo " $(defDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(defdir)/$$f'"; \
-	  $(defDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(defdir)/$$f"; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(defdir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(defdir)" || exit $$?; \
 	done
 
 uninstall-defDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(def_DATA)'; for p in $$list; do \
-	  f=$(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(defdir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(defdir)/$$f"; \
-	done
+	@list='$(def_DATA)'; test -n "$(defdir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	test -n "$$files" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(defdir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(defdir)" && rm -f $$files
 install-xmlDATA: $(xml_DATA)
 	@$(NORMAL_INSTALL)
 	test -z "$(xmldir)" || $(MKDIR_P) "$(DESTDIR)$(xmldir)"
-	@list='$(xml_DATA)'; for p in $$list; do \
+	@list='$(xml_DATA)'; test -n "$(xmldir)" || list=; \
+	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  f=$(am__strip_dir) \
-	  echo " $(xmlDATA_INSTALL) '$$d$$p' '$(DESTDIR)$(xmldir)/$$f'"; \
-	  $(xmlDATA_INSTALL) "$$d$$p" "$(DESTDIR)$(xmldir)/$$f"; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(xmldir)'"; \
+	  $(INSTALL_DATA) $$files "$(DESTDIR)$(xmldir)" || exit $$?; \
 	done
 
 uninstall-xmlDATA:
 	@$(NORMAL_UNINSTALL)
-	@list='$(xml_DATA)'; for p in $$list; do \
-	  f=$(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(xmldir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(xmldir)/$$f"; \
-	done
+	@list='$(xml_DATA)'; test -n "$(xmldir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	test -n "$$files" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(xmldir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(xmldir)" && rm -f $$files
 tags: TAGS
 TAGS:
 
@@ -341,13 +365,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -378,6 +406,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -396,6 +425,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -404,18 +435,28 @@ install-data-am: install-defDATA install-xmlDATA
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -454,6 +495,7 @@ uninstall-am: uninstall-defDATA uninstall-xmlDATA
 opcode.def: make-opcodes-def.pl cil-opcodes.xml
 	perl $(srcdir)/make-opcodes-def.pl $(srcdir)/cil-opcodes.xml $@.tmp
 	mv $@.tmp $@
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/dis/Makefile.in b/mono/dis/Makefile.in
index 4e32ffb..0b48f2c 100644
--- a/mono/dis/Makefile.in
+++ b/mono/dis/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,8 +18,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -50,6 +52,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 LIBRARIES = $(noinst_LIBRARIES)
 ARFLAGS = cru
 libmonodis_a_AR = $(AR) $(ARFLAGS)
@@ -58,7 +61,6 @@ am_libmonodis_a_OBJECTS = get.$(OBJEXT) dis-cil.$(OBJEXT) \
 	util.$(OBJEXT)
 libmonodis_a_OBJECTS = $(am_libmonodis_a_OBJECTS)
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(man1dir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS)
 am_monodis_OBJECTS = dump.$(OBJEXT) main.$(OBJEXT) declsec.$(OBJEXT)
 monodis_OBJECTS = $(am_monodis_OBJECTS)
@@ -68,6 +70,7 @@ monodis_DEPENDENCIES = libmonodis.a $(runtime_lib) \
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -76,6 +79,27 @@ LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 	$(LDFLAGS) -o $@
 SOURCES = $(libmonodis_a_SOURCES) $(monodis_SOURCES)
 DIST_SOURCES = $(libmonodis_a_SOURCES) $(monodis_SOURCES)
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 man1dir = $(mandir)/man1
 NROFF = nroff
 MANS = $(man_MANS)
@@ -172,6 +196,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -297,14 +322,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/dis/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/dis/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/dis/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/dis/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -322,6 +347,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 clean-noinstLIBRARIES:
 	-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
@@ -332,31 +358,46 @@ libmonodis.a: $(libmonodis_a_OBJECTS) $(libmonodis_a_DEPENDENCIES)
 install-binPROGRAMS: $(bin_PROGRAMS)
 	@$(NORMAL_INSTALL)
 	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  if test -f $$p \
-	     || test -f $$p1 \
-	  ; then \
-	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
-	  else :; fi; \
-	done
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	for p in $$list; do echo "$$p $$p"; done | \
+	sed 's/$(EXEEXT)$$//' | \
+	while read p p1; do if test -f $$p || test -f $$p1; \
+	  then echo "$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+	sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
+	    else { print "f", $$3 "/" $$4, $$1; } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	    test -z "$$files" || { \
+	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	    } \
+	; done
 
 uninstall-binPROGRAMS:
 	@$(NORMAL_UNINSTALL)
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
-	done
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+	      -e 's/$$/$(EXEEXT)/' `; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(bindir)" && rm -f $$files
 
 clean-binPROGRAMS:
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  echo " rm -f $$p $$f"; \
-	  rm -f $$p $$f ; \
-	done
+	@list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
 monodis$(EXEEXT): $(monodis_OBJECTS) $(monodis_DEPENDENCIES) 
 	@rm -f monodis$(EXEEXT)
 	$(LINK) $(monodis_OBJECTS) $(monodis_LDADD) $(LIBS)
@@ -376,21 +417,21 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
@@ -400,65 +441,58 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-install-man1: $(man1_MANS) $(man_MANS)
+install-man1: $(man_MANS)
 	@$(NORMAL_INSTALL)
 	test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
-	@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-	for i in $$l2; do \
-	  case "$$i" in \
-	    *.1*) list="$$list $$i" ;; \
-	  esac; \
+	@list=''; test -n "$(man1dir)" || exit 0; \
+	{ for i in $$list; do echo "$$i"; done; \
+	l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+	  sed -n '/\.1[a-z]*$$/p'; \
+	} | while read p; do \
+	  if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; echo "$$p"; \
+	done | \
+	sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+	sed 'N;N;s,\n, ,g' | { \
+	list=; while read file base inst; do \
+	  if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+	    echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+	    $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+	  fi; \
 	done; \
-	for i in $$list; do \
-	  if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-	  else file=$$i; fi; \
-	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-	  case "$$ext" in \
-	    1*) ;; \
-	    *) ext='1' ;; \
-	  esac; \
-	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
-	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-	  echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
-	  $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
-	done
+	for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+	while read files; do \
+	  test -z "$$files" || { \
+	    echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+	    $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+	done; }
+
 uninstall-man1:
 	@$(NORMAL_UNINSTALL)
-	@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-	for i in $$l2; do \
-	  case "$$i" in \
-	    *.1*) list="$$list $$i" ;; \
-	  esac; \
-	done; \
-	for i in $$list; do \
-	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-	  case "$$ext" in \
-	    1*) ;; \
-	    *) ext='1' ;; \
-	  esac; \
-	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
-	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-	  echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
-	  rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
-	done
+	@list=''; test -n "$(man1dir)" || exit 0; \
+	files=`{ for i in $$list; do echo "$$i"; done; \
+	l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+	  sed -n '/\.1[a-z]*$$/p'; \
+	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+	test -z "$$files" || { \
+	  echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
+	  cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -466,34 +500,52 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
+	@list='$(MANS)'; if test -n "$$list"; then \
+	  list=`for p in $$list; do \
+	    if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+	    if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+	  if test -n "$$list" && \
+	    grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+	    echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+	    grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
+	    echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+	    echo "       typically \`make maintainer-clean' will remove them" >&2; \
+	    exit 1; \
+	  else :; fi; \
+	else :; fi
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	list='$(DISTFILES)'; \
@@ -509,13 +561,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -546,6 +602,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -567,6 +624,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -575,18 +634,28 @@ install-data-am: install-man
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am: install-binPROGRAMS
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man: install-man1
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -630,6 +699,7 @@ uninstall-man: uninstall-man1
 
 
 @PLATFORM_WIN32_TRUE at export HOST_CC
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/interpreter/Makefile.in b/mono/interpreter/Makefile.in
index 63de5cb..7f64bd6 100644
--- a/mono/interpreter/Makefile.in
+++ b/mono/interpreter/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -18,8 +19,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -51,15 +53,30 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \
 	"$(DESTDIR)$(man1dir)" "$(DESTDIR)$(libmintincludedir)"
-libLTLIBRARIES_INSTALL = $(INSTALL)
 LTLIBRARIES = $(lib_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 @INCLUDED_LIBGC_FALSE at am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
@@ -71,7 +88,6 @@ libmint_la_DEPENDENCIES = ../arch/libmonoarch.la \
 am_libmint_la_OBJECTS = interp.lo mintops.lo transform.lo
 libmint_la_OBJECTS = $(am_libmint_la_OBJECTS)
 @INTERP_SUPPORTED_TRUE at am_libmint_la_rpath = -rpath $(libdir)
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS)
 am_mint_OBJECTS = main.$(OBJEXT)
 mint_OBJECTS = $(am_mint_OBJECTS)
@@ -79,6 +95,7 @@ mint_DEPENDENCIES = libmint.la
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -90,7 +107,6 @@ DIST_SOURCES = $(libmint_la_SOURCES) $(mint_SOURCES)
 man1dir = $(mandir)/man1
 NROFF = nroff
 MANS = $(man_MANS)
-libmintincludeHEADERS_INSTALL = $(INSTALL_HEADER)
 HEADERS = $(libmintinclude_HEADERS)
 ETAGS = etags
 CTAGS = ctags
@@ -185,6 +201,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -327,14 +344,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/interpreter/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/interpreter/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/interpreter/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/interpreter/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -352,23 +369,28 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+	list2=; for p in $$list; do \
 	  if test -f $$p; then \
-	    f=$(am__strip_dir) \
-	    echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
-	    $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
+	    list2="$$list2 $$p"; \
 	  else :; fi; \
-	done
+	done; \
+	test -z "$$list2" || { \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+	}
 
 uninstall-libLTLIBRARIES:
 	@$(NORMAL_UNINSTALL)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  p=$(am__strip_dir) \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
 	done
 
 clean-libLTLIBRARIES:
@@ -384,31 +406,46 @@ libmint.la: $(libmint_la_OBJECTS) $(libmint_la_DEPENDENCIES)
 install-binPROGRAMS: $(bin_PROGRAMS)
 	@$(NORMAL_INSTALL)
 	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  if test -f $$p \
-	     || test -f $$p1 \
-	  ; then \
-	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
-	  else :; fi; \
-	done
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	for p in $$list; do echo "$$p $$p"; done | \
+	sed 's/$(EXEEXT)$$//' | \
+	while read p p1; do if test -f $$p || test -f $$p1; \
+	  then echo "$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+	sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
+	    else { print "f", $$3 "/" $$4, $$1; } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	    test -z "$$files" || { \
+	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	    } \
+	; done
 
 uninstall-binPROGRAMS:
 	@$(NORMAL_UNINSTALL)
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
-	done
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+	      -e 's/$$/$(EXEEXT)/' `; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(bindir)" && rm -f $$files
 
 clean-binPROGRAMS:
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  echo " rm -f $$p $$f"; \
-	  rm -f $$p $$f ; \
-	done
+	@list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
 mint$(EXEEXT): $(mint_OBJECTS) $(mint_DEPENDENCIES) 
 	@rm -f mint$(EXEEXT)
 	$(LINK) $(mint_OBJECTS) $(mint_LDADD) $(LIBS)
@@ -426,21 +463,21 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
@@ -450,82 +487,78 @@ mostlyclean-libtool:
 
 clean-libtool:
 	-rm -rf .libs _libs
-install-man1: $(man1_MANS) $(man_MANS)
+install-man1: $(man_MANS)
 	@$(NORMAL_INSTALL)
 	test -z "$(man1dir)" || $(MKDIR_P) "$(DESTDIR)$(man1dir)"
-	@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-	for i in $$l2; do \
-	  case "$$i" in \
-	    *.1*) list="$$list $$i" ;; \
-	  esac; \
+	@list=''; test -n "$(man1dir)" || exit 0; \
+	{ for i in $$list; do echo "$$i"; done; \
+	l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+	  sed -n '/\.1[a-z]*$$/p'; \
+	} | while read p; do \
+	  if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+	  echo "$$d$$p"; echo "$$p"; \
+	done | \
+	sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \
+	sed 'N;N;s,\n, ,g' | { \
+	list=; while read file base inst; do \
+	  if test "$$base" = "$$inst"; then list="$$list $$file"; else \
+	    echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
+	    $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst" || exit $$?; \
+	  fi; \
 	done; \
-	for i in $$list; do \
-	  if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-	  else file=$$i; fi; \
-	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-	  case "$$ext" in \
-	    1*) ;; \
-	    *) ext='1' ;; \
-	  esac; \
-	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
-	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-	  echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man1dir)/$$inst'"; \
-	  $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man1dir)/$$inst"; \
-	done
+	for i in $$list; do echo "$$i"; done | $(am__base_list) | \
+	while read files; do \
+	  test -z "$$files" || { \
+	    echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man1dir)'"; \
+	    $(INSTALL_DATA) $$files "$(DESTDIR)$(man1dir)" || exit $$?; }; \
+	done; }
+
 uninstall-man1:
 	@$(NORMAL_UNINSTALL)
-	@list='$(man1_MANS) $(dist_man1_MANS) $(nodist_man1_MANS)'; \
-	l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
-	for i in $$l2; do \
-	  case "$$i" in \
-	    *.1*) list="$$list $$i" ;; \
-	  esac; \
-	done; \
-	for i in $$list; do \
-	  ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-	  case "$$ext" in \
-	    1*) ;; \
-	    *) ext='1' ;; \
-	  esac; \
-	  inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-	  inst=`echo $$inst | sed -e 's/^.*\///'`; \
-	  inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-	  echo " rm -f '$(DESTDIR)$(man1dir)/$$inst'"; \
-	  rm -f "$(DESTDIR)$(man1dir)/$$inst"; \
-	done
+	@list=''; test -n "$(man1dir)" || exit 0; \
+	files=`{ for i in $$list; do echo "$$i"; done; \
+	l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \
+	  sed -n '/\.1[a-z]*$$/p'; \
+	} | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^1][0-9a-z]*$$,1,;x' \
+	      -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \
+	test -z "$$files" || { \
+	  echo " ( cd '$(DESTDIR)$(man1dir)' && rm -f" $$files ")"; \
+	  cd "$(DESTDIR)$(man1dir)" && rm -f $$files; }
 install-libmintincludeHEADERS: $(libmintinclude_HEADERS)
 	@$(NORMAL_INSTALL)
 	test -z "$(libmintincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libmintincludedir)"
-	@list='$(libmintinclude_HEADERS)'; for p in $$list; do \
+	@list='$(libmintinclude_HEADERS)'; test -n "$(libmintincludedir)" || list=; \
+	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  f=$(am__strip_dir) \
-	  echo " $(libmintincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libmintincludedir)/$$f'"; \
-	  $(libmintincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libmintincludedir)/$$f"; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libmintincludedir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(libmintincludedir)" || exit $$?; \
 	done
 
 uninstall-libmintincludeHEADERS:
 	@$(NORMAL_UNINSTALL)
-	@list='$(libmintinclude_HEADERS)'; for p in $$list; do \
-	  f=$(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(libmintincludedir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(libmintincludedir)/$$f"; \
-	done
+	@list='$(libmintinclude_HEADERS)'; test -n "$(libmintincludedir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	test -n "$$files" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(libmintincludedir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(libmintincludedir)" && rm -f $$files
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -533,34 +566,52 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
 
 distdir: $(DISTFILES)
+	@list='$(MANS)'; if test -n "$$list"; then \
+	  list=`for p in $$list; do \
+	    if test -f $$p; then d=; else d="$(srcdir)/"; fi; \
+	    if test -f "$$d$$p"; then echo "$$d$$p"; else :; fi; done`; \
+	  if test -n "$$list" && \
+	    grep 'ab help2man is required to generate this page' $$list >/dev/null; then \
+	    echo "error: found man pages containing the \`missing help2man' replacement text:" >&2; \
+	    grep -l 'ab help2man is required to generate this page' $$list | sed 's/^/         /' >&2; \
+	    echo "       to fix them, install help2man, remove and regenerate the man pages;" >&2; \
+	    echo "       typically \`make maintainer-clean' will remove them" >&2; \
+	    exit 1; \
+	  else :; fi; \
+	else :; fi
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	list='$(DISTFILES)'; \
@@ -576,13 +627,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -615,6 +670,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -636,6 +692,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -644,18 +702,28 @@ install-data-am: install-libmintincludeHEADERS install-man
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am: install-binPROGRAMS install-libLTLIBRARIES
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man: install-man1
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -702,6 +770,7 @@ uninstall-man: uninstall-man1
 
 
 @PLATFORM_WIN32_TRUE at export HOST_CC
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/io-layer/Makefile.in b/mono/io-layer/Makefile.in
index f0b5799..e4b7ed9 100644
--- a/mono/io-layer/Makefile.in
+++ b/mono/io-layer/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,8 +18,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -49,6 +51,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 libwapi_la_LIBADD =
 am__libwapi_la_SOURCES_DIST = access.h atomic.c atomic.h collection.c \
@@ -85,6 +88,7 @@ libwapi_la_OBJECTS = $(am_libwapi_la_OBJECTS)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 CPPASCOMPILE = $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
 	$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CCASFLAGS) $(CCASFLAGS)
 LTCPPASCOMPILE = $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
@@ -109,9 +113,23 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(libwapiincludedir)"
-libwapiincludeHEADERS_INSTALL = $(INSTALL_HEADER)
 HEADERS = $(libwapiinclude_HEADERS)
 ETAGS = etags
 CTAGS = ctags
@@ -206,6 +224,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -434,14 +453,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/io-layer/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/io-layer/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/io-layer/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/io-layer/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -459,6 +478,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
@@ -506,49 +526,49 @@ distclean-compile:
 
 .S.o:
 @am__fastdepCCAS_TRUE@	$(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCCAS_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCCAS_FALSE@	$(CPPASCOMPILE) -c -o $@ $<
 
 .S.obj:
 @am__fastdepCCAS_TRUE@	$(CPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCCAS_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCCAS_FALSE@	$(CPPASCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
 
 .S.lo:
 @am__fastdepCCAS_TRUE@	$(LTCPPASCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCCAS_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCCAS_FALSE@	$(LTCPPASCOMPILE) -c -o $@ $<
 
 libwapi_la-hppa_atomic.lo: hppa_atomic.S
- at am__fastdepCCAS_TRUE@	$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libwapi_la_CCASFLAGS) $(CCASFLAGS) -MT libwapi_la-hppa_atomic.lo -MD -MP -MF $(DEPDIR)/libwapi_la-hppa_atomic.Tpo -c -o libwapi_la-hppa_atomic.lo `test -f 'hppa_atomic.S' || echo '$(srcdir)/'`hppa_atomic.S
- at am__fastdepCCAS_TRUE@	mv -f $(DEPDIR)/libwapi_la-hppa_atomic.Tpo $(DEPDIR)/libwapi_la-hppa_atomic.Plo
+ at am__fastdepCCAS_TRUE@	$(LIBTOOL)  $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libwapi_la_CCASFLAGS) $(CCASFLAGS) -MT libwapi_la-hppa_atomic.lo -MD -MP -MF $(DEPDIR)/libwapi_la-hppa_atomic.Tpo -c -o libwapi_la-hppa_atomic.lo `test -f 'hppa_atomic.S' || echo '$(srcdir)/'`hppa_atomic.S
+ at am__fastdepCCAS_TRUE@	$(am__mv) $(DEPDIR)/libwapi_la-hppa_atomic.Tpo $(DEPDIR)/libwapi_la-hppa_atomic.Plo
 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	source='hppa_atomic.S' object='libwapi_la-hppa_atomic.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCCAS_FALSE@	DEPDIR=$(DEPDIR) $(CCASDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCCAS_FALSE@	$(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libwapi_la_CCASFLAGS) $(CCASFLAGS) -c -o libwapi_la-hppa_atomic.lo `test -f 'hppa_atomic.S' || echo '$(srcdir)/'`hppa_atomic.S
+ at am__fastdepCCAS_FALSE@	$(LIBTOOL)  $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CCAS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libwapi_la_CCASFLAGS) $(CCASFLAGS) -c -o libwapi_la-hppa_atomic.lo `test -f 'hppa_atomic.S' || echo '$(srcdir)/'`hppa_atomic.S
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
@@ -561,34 +581,37 @@ clean-libtool:
 install-libwapiincludeHEADERS: $(libwapiinclude_HEADERS)
 	@$(NORMAL_INSTALL)
 	test -z "$(libwapiincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libwapiincludedir)"
-	@list='$(libwapiinclude_HEADERS)'; for p in $$list; do \
+	@list='$(libwapiinclude_HEADERS)'; test -n "$(libwapiincludedir)" || list=; \
+	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  f=$(am__strip_dir) \
-	  echo " $(libwapiincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libwapiincludedir)/$$f'"; \
-	  $(libwapiincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libwapiincludedir)/$$f"; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libwapiincludedir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(libwapiincludedir)" || exit $$?; \
 	done
 
 uninstall-libwapiincludeHEADERS:
 	@$(NORMAL_UNINSTALL)
-	@list='$(libwapiinclude_HEADERS)'; for p in $$list; do \
-	  f=$(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(libwapiincludedir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(libwapiincludedir)/$$f"; \
-	done
+	@list='$(libwapiinclude_HEADERS)'; test -n "$(libwapiincludedir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	test -n "$$files" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(libwapiincludedir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(libwapiincludedir)" && rm -f $$files
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -596,29 +619,34 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -639,13 +667,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -676,6 +708,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -697,6 +730,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -705,18 +740,28 @@ install-data-am: install-libwapiincludeHEADERS
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -755,6 +800,7 @@ uninstall-am: uninstall-libwapiincludeHEADERS
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags uninstall uninstall-am uninstall-libwapiincludeHEADERS
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/metadata/ChangeLog b/mono/metadata/ChangeLog
index 3e3ed44..5b8bb9c 100644
--- a/mono/metadata/ChangeLog
+++ b/mono/metadata/ChangeLog
@@ -1,3 +1,142 @@
+2010-02-09 Gonzalo Paniagua Javier <gonzalo at novell.com>
+
+	* threadpool.c: Fixes for SetMinThreads and SetMaxThreads.
+	Closes bug #566057.
+
+	* exception.c: fix typo in comment.
+
+2010-02-02  Zoltan Varga  <vargaz at gmail.com>
+
+	* reflection.c (resolve_object): Handle MonoArrayMethod. Fixes #575955.
+
+2010-01-29  Zoltan Varga  <vargaz at gmail.com>
+
+	* class.c (make_generic_param_class): Initialize interface offsets since we
+	set klass->inited. Fixes #574819.
+
+2010-01-27  Zoltan Varga  <vargaz at gmail.com>
+
+	* object.c (mono_field_get_value_object): Handle nullable types correctly.
+	Fixes #572874.
+
+2010-01-25  Zoltan Varga  <vargaz at gmail.com>
+
+	* icall.c (ves_icall_System_Array_SetValueImpl): Handle nullable types correctly.
+	Fixes #573322.
+
+2010-01-06  Atsushi Enomoto  <atsushi at ximian.com>
+
+	* culture-info-table.h : regenerated.
+
+2010-01-19  Rodrigo Kumpera  <rkumpera at novell.com>
+
+	* icall.c (ves_icall_MonoMethod_GetGenericMethodDefinition): Handle inflated generic methods
+	on a GTD.
+
+	Backport of r149808.
+
+2010-01-11  Zoltan Varga  <vargaz at gmail.com>
+
+	* socket-io.c (AI_ADDRCONFIG): Applied patch from John Lightsey (jd at cpanel.net).
+	Fixes build on rh 7.3.
+
+2009-12-16  Zoltan Varga  <vargaz at gmail.com>
+
+	* class.c (mono_bounded_array_class_get): Make these classes PUBLIC. Fixes
+	#565120.
+
+2009-12-26  Zoltan Varga  <vargaz at gmail.com>
+
+	* monitor.c (ves_icall_System_Threading_Monitor_Monitor_wait): Don't close the
+	wait handle if the wait is interrupted, since it is still in mon->wait_list, and
+	we can't remove it from it since we don't hold the lock.
+	(mon_new): Free the orphaned events here when a mon structure is added to the
+	freelist. Fixes #561239. Thanks to Mike Rieker <wmrieker at nii.net> for tracking
+	this down.
+
+2009-12-26  Zoltan Varga  <vargaz at gmail.com>
+
+	* generic-sharing.c (instantiate_other_info): Avoid creating jump trampolines since
+	they cannot be patched. Partly fixes #564408.
+
+2010-01-03  Zoltan Varga  <vargaz at gmail.com>
+
+	* marshal.c (mono_marshal_get_runtime_invoke): Fix a memory leak.
+
+2010-01-03  Zoltan Varga  <vargaz at gmail.com>
+
+	* locales.c (construct_culture_from_specific_name): Applied patch from
+	José Antonio Sánchez Lázaro <jasl at darcysoft.es>. Fix a crash if a culture was
+	not found. Fixes #567900.
+
+2009-12-17  Zoltan Varga  <vargaz at gmail.com>
+
+	* reflection.c (resolve_object): Fix the encoding of unmanaged calling
+	conventions.
+
+2009-12-16  Rodrigo Kumpera  <rkumpera at novell.com>
+
+	* reflection.c (mono_type_get_object): Guard against NULL generic param owner.
+
+2009-12-16  Rodrigo Kumpera  <rkumpera at novell.com>
+
+	* reflection.c (mono_type_get_object): If the type is VAR or MVAR check
+	if the owner class has not been finished before returning reflection_info.	
+
+	Fixes #565127.
+
+	Backport of r148575.
+
+2009-12-16  Zoltan Varga  <vargaz at gmail.com>
+
+	* reflection.c (mono_custom_attrs_from_param): Avoid a crash if a dynamic
+	param doesn't have custom attributes. Fixes #565117.
+
+Fri Dec 11 18:24:04 CET 2009 Paolo Molaro <lupus at ximian.com>
+
+	* boehm-gc.c: fixed race condition while getting the target of a
+	disappearing link (bug #522233).
+
+2009-12-15  Marek Habersack  <mhabersack at novell.com>
+
+	* appdomain.c (mono_make_shadow_copy): make sure access mode of
+	the target files is reset to writable by owner and readable by
+	everyone else to prevent problems when updating shadow copies of
+	files whose source is read-only. Fixes bug #556884
+
+Fri Dec 11 18:24:04 CET 2009 Paolo Molaro <lupus at ximian.com>
+
+	* boehm-gc.c: fixed race condition while getting the target of a
+	disappearing link (bug #522233).
+
+2009-12-01  Rodrigo Kumpera  <rkumpera at novell.com>
+
+	* reflection.c (fieldref_encode_signature): For some reason 2.4 doesn't
+	behave like 2.8 on this part. So add an extra guard for the token kind.
+
+	Fixes #563909.
+
+2009-12-05  Zoltan Varga  <vargaz at gmail.com>
+
+	Applied patch from Laurent Etiemble (laurent.etiemble at gmail.com).
+
+	* mono/metadata/assembly.c: When opening an assembly image, pass the real
+	names in addition to the runtime generated one.
+
+	* mono/metadata/image.h: Add a function to take the real name of the assembly
+	image.
+
+	* mono/metadata/image.c: If a real name has been passed to load an assembly,
+	use it instead of the runtime generated one.
+
+	Code is contributed under MIT/X11 license.
+
+2009-12-05  Zoltan Varga  <vargaz at gmail.com>
+
+	* marshal.c (emit_marshal_vtype): Do the klass == date_time_class checks
+	before the other checks to prevent problems if the DateTime class is blittable.
+	Hopefully fixes #559600.
+
 2009-12-01  Rodrigo Kumpera  <rkumpera at novell.com>
 
 	* metadata.c (inflated_method_in_image): Avoid calling
@@ -5,6 +144,13 @@
 
 	Backport of r125724.
 
+2009-11-28  Zoltan Varga  <vargaz at gmail.com>
+
+	* appdomain.c (create_exceptions): New helper function extracted from
+	mono_runtime_init () to precreate objects used during exception handling.
+	(mono_runtime_init): Call it.
+	(mono_domain_create_appdomain_internal): Ditto. Fixes #555264.
+
 2009-11-15  Zoltan Varga  <vargaz at gmail.com>
 
 	* boehm-gc.c (mono_gc_base_init): Applied patch from DKoushik K. Dutta (
diff --git a/mono/metadata/Makefile.in b/mono/metadata/Makefile.in
index 37abe3d..edec3ec 100644
--- a/mono/metadata/Makefile.in
+++ b/mono/metadata/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -18,8 +19,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -51,6 +53,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 libmonoruntime_static_la_DEPENDENCIES =
 am__objects_1 = reflection.lo object.lo icall.lo decimal.lo \
@@ -88,7 +91,6 @@ am_libmonoruntime_la_OBJECTS = reflection.lo object.lo icall.lo \
 libmonoruntime_la_OBJECTS = $(am_libmonoruntime_la_OBJECTS)
 am__installdirs = "$(DESTDIR)$(bindir)" \
 	"$(DESTDIR)$(libmonoruntimeincludedir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS)
 am_pedump_OBJECTS = pedump.$(OBJEXT)
 pedump_OBJECTS = $(am_pedump_OBJECTS)
@@ -100,6 +102,7 @@ pedump_DEPENDENCIES = libmonoruntime.la ../io-layer/libwapi.la \
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -115,8 +118,22 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
-libmonoruntimeincludeHEADERS_INSTALL = $(INSTALL_HEADER)
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 HEADERS = $(libmonoruntimeinclude_HEADERS)
 ETAGS = etags
 CTAGS = ctags
@@ -211,6 +228,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -468,14 +486,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/metadata/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/metadata/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/metadata/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/metadata/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -493,6 +511,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
@@ -509,31 +528,46 @@ libmonoruntime.la: $(libmonoruntime_la_OBJECTS) $(libmonoruntime_la_DEPENDENCIES
 install-binPROGRAMS: $(bin_PROGRAMS)
 	@$(NORMAL_INSTALL)
 	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  if test -f $$p \
-	     || test -f $$p1 \
-	  ; then \
-	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
-	  else :; fi; \
-	done
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	for p in $$list; do echo "$$p $$p"; done | \
+	sed 's/$(EXEEXT)$$//' | \
+	while read p p1; do if test -f $$p || test -f $$p1; \
+	  then echo "$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+	sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
+	    else { print "f", $$3 "/" $$4, $$1; } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	    test -z "$$files" || { \
+	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	    } \
+	; done
 
 uninstall-binPROGRAMS:
 	@$(NORMAL_UNINSTALL)
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
-	done
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+	      -e 's/$$/$(EXEEXT)/' `; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(bindir)" && rm -f $$files
 
 clean-binPROGRAMS:
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  echo " rm -f $$p $$f"; \
-	  rm -f $$p $$f ; \
-	done
+	@list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
 pedump$(EXEEXT): $(pedump_OBJECTS) $(pedump_DEPENDENCIES) 
 	@rm -f pedump$(EXEEXT)
 	$(LINK) $(pedump_OBJECTS) $(pedump_LDADD) $(LIBS)
@@ -598,21 +632,21 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
@@ -625,34 +659,37 @@ clean-libtool:
 install-libmonoruntimeincludeHEADERS: $(libmonoruntimeinclude_HEADERS)
 	@$(NORMAL_INSTALL)
 	test -z "$(libmonoruntimeincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libmonoruntimeincludedir)"
-	@list='$(libmonoruntimeinclude_HEADERS)'; for p in $$list; do \
+	@list='$(libmonoruntimeinclude_HEADERS)'; test -n "$(libmonoruntimeincludedir)" || list=; \
+	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  f=$(am__strip_dir) \
-	  echo " $(libmonoruntimeincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libmonoruntimeincludedir)/$$f'"; \
-	  $(libmonoruntimeincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libmonoruntimeincludedir)/$$f"; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libmonoruntimeincludedir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(libmonoruntimeincludedir)" || exit $$?; \
 	done
 
 uninstall-libmonoruntimeincludeHEADERS:
 	@$(NORMAL_UNINSTALL)
-	@list='$(libmonoruntimeinclude_HEADERS)'; for p in $$list; do \
-	  f=$(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(libmonoruntimeincludedir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(libmonoruntimeincludedir)/$$f"; \
-	done
+	@list='$(libmonoruntimeinclude_HEADERS)'; test -n "$(libmonoruntimeincludedir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	test -n "$$files" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(libmonoruntimeincludedir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(libmonoruntimeincludedir)" && rm -f $$files
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -660,29 +697,34 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -703,13 +745,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -741,6 +787,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -762,6 +809,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -770,18 +819,28 @@ install-data-am: install-libmonoruntimeincludeHEADERS
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am: install-binPROGRAMS
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -839,6 +898,7 @@ assembly.lo mono-config.lo: Makefile
 @DTRACE_G_REQUIRED_TRUE at pedump-dtrace.$(OBJEXT): $(top_srcdir)/data/mono.d libmonoruntime.la ../io-layer/libwapi.la ../utils/libmonoutils.la
 @DTRACE_G_REQUIRED_TRUE@	DTRACE="$(DTRACE)" DTRACEFLAGS="$(DTRACEFLAGS)" AR="$(AR)" $(SHELL) $(top_srcdir)/data/dtrace-prelink.sh \
 @DTRACE_G_REQUIRED_TRUE@	--pic pedump-dtrace.$(OBJEXT) $(top_srcdir)/data/mono.d libmonoruntime.la ../io-layer/libwapi.la ../utils/libmonoutils.la
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/metadata/appdomain.c b/mono/metadata/appdomain.c
index 7efa971..e9d39b7 100644
--- a/mono/metadata/appdomain.c
+++ b/mono/metadata/appdomain.c
@@ -150,6 +150,33 @@ mono_runtime_get_no_exec (void)
 	return no_exec;
 }
 
+static void
+create_exceptions (MonoDomain *domain)
+{
+	MonoString *arg;
+
+	/*
+	 * Create an instance early since we can't do it when there is no memory.
+	 */
+	arg = mono_string_new (domain, "Out of memory");
+	domain->out_of_memory_ex = mono_exception_from_name_two_strings (mono_defaults.corlib, "System", "OutOfMemoryException", arg, NULL);
+	
+	/* 
+	 * These two are needed because the signal handlers might be executing on
+	 * an alternate stack, and Boehm GC can't handle that.
+	 */
+	arg = mono_string_new (domain, "A null value was found where an object instance was required");
+	domain->null_reference_ex = mono_exception_from_name_two_strings (mono_defaults.corlib, "System", "NullReferenceException", arg, NULL);
+	arg = mono_string_new (domain, "The requested operation caused a stack overflow.");
+	domain->stack_overflow_ex = mono_exception_from_name_two_strings (mono_defaults.corlib, "System", "StackOverflowException", arg, NULL);
+
+	/* 
+	 * This class is used during exception handling, so initialize it here, to prevent
+	 * stack overflows while handling stack overflows.
+	 */
+	mono_class_init (mono_array_class_get (mono_defaults.int_class, 1));
+}
+
 /**
  * mono_runtime_init:
  * @domain: domain returned by mono_init ()
@@ -169,7 +196,6 @@ mono_runtime_init (MonoDomain *domain, MonoThreadStartCB start_cb,
 	MonoAppDomainSetup *setup;
 	MonoAppDomain *ad;
 	MonoClass *class;
-	MonoString *arg;
 
 	mono_portability_helpers_init ();
 	
@@ -211,22 +237,8 @@ mono_runtime_init (MonoDomain *domain, MonoThreadStartCB start_cb,
 
 	mono_type_initialization_init ();
 
-	if (!mono_runtime_get_no_exec ()) {
-		/*
-		 * Create an instance early since we can't do it when there is no memory.
-		 */
-		arg = mono_string_new (domain, "Out of memory");
-		domain->out_of_memory_ex = mono_exception_from_name_two_strings (mono_defaults.corlib, "System", "OutOfMemoryException", arg, NULL);
-	
-		/* 
-		 * These two are needed because the signal handlers might be executing on
-		 * an alternate stack, and Boehm GC can't handle that.
-		 */
-		arg = mono_string_new (domain, "A null value was found where an object instance was required");
-		domain->null_reference_ex = mono_exception_from_name_two_strings (mono_defaults.corlib, "System", "NullReferenceException", arg, NULL);
-		arg = mono_string_new (domain, "The requested operation caused a stack overflow.");
-		domain->stack_overflow_ex = mono_exception_from_name_two_strings (mono_defaults.corlib, "System", "StackOverflowException", arg, NULL);
-	}
+	if (!mono_runtime_get_no_exec ())
+		create_exceptions (domain);
 
 	/* GC init has to happen after thread init */
 	mono_gc_init ();
@@ -420,6 +432,8 @@ mono_domain_create_appdomain_internal (char *friendly_name, MonoAppDomainSetup *
 
 	mono_debugger_event_create_appdomain (data, get_shadow_assembly_location_base (data));
 
+	create_exceptions (data);
+
 	return ad;
 }
 
@@ -1113,6 +1127,12 @@ shadow_copy_sibling (gchar *src, gint srclen, const char *extension, gchar *targ
 	
 	DeleteFile (dest);
 	copy_result = CopyFile (orig, dest, FALSE);
+
+	/* Fix for bug #556884 - make sure the files have the correct mode so that they can be
+	 * overwritten when updated in their original locations. */
+	if (copy_result)
+		copy_result = SetFileAttributes (dest, FILE_ATTRIBUTE_NORMAL);
+
 	g_free (orig);
 	g_free (dest);
 	
@@ -1437,6 +1457,12 @@ mono_make_shadow_copy (const char *filename)
 	dest = g_utf8_to_utf16 (shadow, strlen (shadow), NULL, NULL, NULL);
 	DeleteFile (dest);
 	copy_result = CopyFile (orig, dest, FALSE);
+
+	/* Fix for bug #556884 - make sure the files have the correct mode so that they can be
+	 * overwritten when updated in their original locations. */
+	if (copy_result)
+		copy_result = SetFileAttributes (dest, FILE_ATTRIBUTE_NORMAL);
+
 	g_free (dest);
 	g_free (orig);
 
diff --git a/mono/metadata/assembly.c b/mono/metadata/assembly.c
index e371f1b..70be452 100644
--- a/mono/metadata/assembly.c
+++ b/mono/metadata/assembly.c
@@ -1209,7 +1209,7 @@ mono_assembly_open_from_bundle (const char *filename, MonoImageOpenStatus *statu
 	mono_assemblies_lock ();
 	for (i = 0; !image && bundles [i]; ++i) {
 		if (strcmp (bundles [i]->name, name) == 0) {
-			image = mono_image_open_from_data_full ((char*)bundles [i]->data, bundles [i]->size, FALSE, status, refonly);
+			image = mono_image_open_from_data_with_name ((char*)bundles [i]->data, bundles [i]->size, FALSE, status, refonly, name);
 			break;
 		}
 	}
diff --git a/mono/metadata/boehm-gc.c b/mono/metadata/boehm-gc.c
index ac045a0..79e17fc 100644
--- a/mono/metadata/boehm-gc.c
+++ b/mono/metadata/boehm-gc.c
@@ -313,10 +313,17 @@ mono_gc_weak_link_remove (void **link_addr)
 	*link_addr = NULL;
 }
 
+static gpointer
+reveal_link (gpointer link_addr)
+{
+	void **link_a = link_addr;
+	return REVEAL_POINTER (*link_a);
+}
+
 MonoObject*
 mono_gc_weak_link_get (void **link_addr)
 {
-	MonoObject *obj = REVEAL_POINTER (*link_addr);
+	MonoObject *obj = GC_call_with_alloc_lock (reveal_link, link_addr);
 	if (obj == (MonoObject *) -1)
 		return NULL;
 	return obj;
diff --git a/mono/metadata/class.c b/mono/metadata/class.c
index ca1dc51..385708c 100644
--- a/mono/metadata/class.c
+++ b/mono/metadata/class.c
@@ -4580,6 +4580,12 @@ mono_class_from_generic_parameter (MonoGenericParam *param, MonoImage *image, gb
 
 	mono_class_setup_supertypes (klass);
 
+	if (count - pos > 0) {
+		mono_class_setup_vtable (klass->parent);
+		g_assert (!klass->parent->exception_type);
+		setup_interface_offsets (klass, klass->parent->vtable_size);
+	}
+
 	mono_memory_barrier ();
 
 	param->pklass = klass;
@@ -4876,8 +4882,7 @@ mono_bounded_array_class_get (MonoClass *eclass, guint32 rank, gboolean bounded)
 
 	class->type_token = 0;
 	/* all arrays are marked serializable and sealed, bug #42779 */
-	class->flags = TYPE_ATTRIBUTE_CLASS | TYPE_ATTRIBUTE_SERIALIZABLE | TYPE_ATTRIBUTE_SEALED |
-		(eclass->flags & TYPE_ATTRIBUTE_VISIBILITY_MASK);
+	class->flags = TYPE_ATTRIBUTE_CLASS | TYPE_ATTRIBUTE_SERIALIZABLE | TYPE_ATTRIBUTE_SEALED | TYPE_ATTRIBUTE_PUBLIC;
 	class->parent = parent;
 	class->instance_size = mono_class_instance_size (class->parent);
 
diff --git a/mono/metadata/culture-info-tables.h b/mono/metadata/culture-info-tables.h
index 5e0dcd6..b1ab845 100644
--- a/mono/metadata/culture-info-tables.h
+++ b/mono/metadata/culture-info-tables.h
@@ -4,1043 +4,1039 @@
 #define MONO_METADATA_CULTURE_INFO_TABLES 1
 
 
-#define NUM_CULTURE_ENTRIES 165
+#define NUM_CULTURE_ENTRIES 164
 #define NUM_REGION_ENTRIES 230
 
 
 static const DateTimeFormatEntry datetime_format_entries [] = {
-	{1, 24, 37, 46, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {87, 98, 113, 130, 147, 160, 173}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 0, 323, 325, {327,37},{336,24},{349,56},{355,46}},
-	{366, 388, 401, 417, 349, 426, 436, 444, 447, {450, 463, 484, 499, 510, 529, 540}, {553, 561, 569, 575, 581, 591, 599}, {607, 620, 637, 646, 657, 664, 671, 678, 691, 710, 727, 742, 322}, {759, 765, 637, 773, 657, 664, 671, 781, 789, 797, 805, 815, 322}, 0, 0, 323, 325, {327,823,401},{336,388},{349},{355,417}},
-	{832, 853, 865, 417, 349, 426, 436, 444, 447, {876, 885, 893, 901, 910, 917, 927}, {936, 940, 944, 948, 952, 956, 960}, {964, 970, 977, 983, 989, 994, 999, 1006, 1012, 1021, 1029, 1038, 322}, {1047, 1052, 977, 1057, 989, 994, 1062, 1067, 1071, 1076, 1081, 1086, 322}, 0, 0, 323, 325, {327,1091,865},{336,853},{349},{355,417}},
+	{1, 24, 37, 46, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {87, 98, 113, 130, 147, 160, 173}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 6, 323, 325, {327,37},{336,24},{349,56},{355,46}},
+	{366, 388, 401, 417, 349, 426, 436, 444, 447, {450, 463, 484, 499, 510, 529, 540}, {553, 561, 569, 575, 581, 591, 599}, {607, 620, 637, 646, 657, 664, 671, 678, 691, 710, 727, 742, 322}, {759, 765, 637, 773, 657, 664, 671, 781, 789, 797, 805, 815, 322}, 0, 1, 323, 325, {327,823,401},{336,388},{349},{355,417}},
+	{832, 853, 865, 417, 349, 426, 436, 444, 447, {876, 885, 893, 901, 910, 917, 927}, {936, 940, 944, 948, 952, 956, 960}, {964, 970, 977, 983, 989, 994, 999, 1006, 1012, 1021, 1029, 1038, 322}, {1047, 1052, 977, 1057, 989, 994, 1062, 1067, 1071, 1076, 1081, 1086, 322}, 0, 1, 323, 325, {327,1091,865},{336,853},{349},{355,417}},
 	{1100, 1145, 1167, 1176, 1199, 1206, 1222, 1235, 1242, {1249, 1259, 1269, 1279, 1289, 1299, 1309}, {1319, 1323, 1327, 1331, 1335, 1339, 1343}, {1347, 1354, 1361, 1368, 1375, 1382, 1389, 1396, 1403, 1410, 1417, 1427, 322}, {1347, 1354, 1361, 1368, 1375, 1382, 1389, 1396, 1403, 1410, 1417, 1427, 322}, 0, 0, 323, 325, {327,1167},{336,1145},{349,1199},{355,1176}},
-	{1437, 1458, 1471, 1480, 1488, 426, 1493, 1501, 1506, {1511, 1519, 1529, 1537, 1545, 1554, 1561}, {1568, 1571, 1574, 1578, 1581, 1585, 1589}, {1592, 1598, 1604, 1612, 1618, 1626, 1634, 1644, 1650, 1658, 1666, 1675, 322}, {1684, 1686, 1689, 1693, 1696, 1698, 1701, 1705, 1710, 1713, 1715, 1718, 322}, 0, 0, 323, 325, {327,1722,1471},{336,1458},{349,1488},{355,1729,1480}},
-	{1739, 1760, 1772, 417, 349, 426, 436, 444, 447, {1783, 1791, 1798, 1806, 1813, 1821, 1828}, {1836, 1841, 1845, 1849, 1853, 1857, 1861}, {1866, 1873, 1881, 1887, 1893, 1897, 1902, 1907, 1914, 1924, 1932, 1941, 322}, {1950, 1954, 1958, 1962, 1893, 1966, 1970, 1974, 1978, 1982, 1986, 1990, 322}, 0, 0, 323, 325, {327,1994,1772},{336,1760},{349},{355,417}},
-	{2003, 1458, 2025, 417, 349, 426, 1493, 2036, 2042, {2049, 2057, 2064, 2073, 2082, 2093, 2101}, {2109, 2112, 2115, 2118, 2121, 2124, 2127}, {2130, 2137, 2145, 2151, 2157, 2161, 2166, 2171, 2178, 2188, 2196, 2205, 322}, {2214, 2218, 2222, 2226, 2157, 2230, 2234, 2238, 2242, 2246, 2250, 2254, 322}, 0, 0, 323, 325, {327,823,2025},{336,1458},{349},{355,417}},
-	{2258, 388, 37, 2282, 56, 426, 436, 2293, 2298, {2303, 2318, 2333, 2344, 2359, 2372, 2391}, {2406, 2413, 2420, 2427, 2434, 2441, 2448}, {2455, 2476, 2499, 2514, 2531, 2542, 2557, 2572, 2591, 2614, 2633, 2652, 322}, {2673, 2680, 2687, 2694, 2701, 2708, 2717, 2726, 2733, 2740, 2747, 2754, 322}, 0, 0, 323, 325, {327,865,37},{336,388},{349,56},{355,2761,2282}},
+	{1437, 1458, 1471, 1480, 1488, 426, 1493, 1501, 1506, {1511, 1519, 1529, 1537, 1545, 1554, 1561}, {1568, 1571, 1574, 1578, 1581, 1585, 1589}, {1592, 1598, 1604, 1612, 1618, 1626, 1634, 1644, 1650, 1658, 1666, 1675, 322}, {1684, 1686, 1689, 1693, 1696, 1698, 1701, 1705, 1710, 1713, 1715, 1718, 322}, 0, 1, 323, 325, {327,1722,1471},{336,1458},{349,1488},{355,1729,1480}},
+	{1739, 1760, 1772, 417, 349, 426, 436, 444, 447, {1783, 1791, 1798, 1806, 1813, 1821, 1828}, {1836, 1841, 1845, 1849, 1853, 1857, 1861}, {1866, 1873, 1881, 1887, 1893, 1897, 1902, 1907, 1914, 1924, 1932, 1941, 322}, {1950, 1954, 1958, 1962, 1893, 1966, 1970, 1974, 1978, 1982, 1986, 1990, 322}, 0, 1, 323, 325, {327,1994,1772},{336,1760},{349},{355,417}},
+	{2003, 1458, 2025, 417, 349, 426, 1493, 2036, 2042, {2049, 2057, 2064, 2073, 2082, 2093, 2101}, {2109, 2112, 2115, 2118, 2121, 2124, 2127}, {2130, 2137, 2145, 2151, 2157, 2161, 2166, 2171, 2178, 2188, 2196, 2205, 322}, {2214, 2218, 2222, 2226, 2157, 2230, 2234, 2238, 2242, 2246, 2250, 2254, 322}, 0, 1, 323, 325, {327,823,2025},{336,1458},{349},{355,417}},
+	{2258, 388, 37, 2282, 56, 426, 436, 2293, 2298, {2303, 2318, 2333, 2344, 2359, 2372, 2391}, {2406, 2413, 2420, 2427, 2434, 2441, 2448}, {2455, 2476, 2499, 2514, 2531, 2542, 2557, 2572, 2591, 2614, 2633, 2652, 322}, {2673, 2680, 2687, 2694, 2701, 2708, 2717, 2726, 2733, 2740, 2747, 2754, 322}, 0, 1, 323, 325, {327,865,37},{336,388},{349,56},{355,2761,2282}},
 	{2773, 2804, 2824, 2282, 2833, 63, 2841, 444, 447, {2848, 2855, 2862, 2870, 2880, 2889, 2896}, {2905, 2909, 2913, 2917, 2921, 2925, 2929}, {2933, 2941, 2950, 2151, 2956, 2960, 2965, 2171, 2178, 2970, 2196, 2978, 322}, {2214, 2218, 2987, 2226, 2956, 2230, 2234, 2238, 2242, 2991, 2250, 2995, 322}, 0, 0, 323, 325, {2824,2824,2999,2999,3006,3015,327,3026,3037},{2804,2804,3047,3061,3081},{2833,2833,3096,1488,349},{2282,2282,3105,1480,417}},
-	{3117, 3142, 1471, 1480, 349, 3159, 3172, 444, 447, {3184, 3194, 3204, 3212, 3224, 3232, 3242}, {3251, 3254, 3257, 3260, 3263, 3266, 3269}, {3272, 3281, 3290, 3300, 3309, 3318, 3327, 3337, 3344, 3352, 3360, 3370, 322}, {3379, 3385, 3391, 3398, 3404, 3410, 3416, 3423, 3427, 3432, 3437, 3444, 322}, 0, 0, 323, 325, {327,1471},{336,3142},{349},{355,1480}},
-	{3450, 3476, 865, 417, 349, 426, 74, 444, 447, {3493, 3502, 3508, 3514, 3523, 3529, 3538}, {3545, 3550, 3555, 3560, 3565, 3570, 3575}, {3580, 3588, 3597, 3602, 3608, 3612, 3617, 3625, 3631, 3641, 1029, 3649, 322}, {3659, 3665, 3597, 3672, 3608, 3612, 3677, 3625, 3683, 1076, 1081, 3689, 322}, 0, 0, 323, 325, {1091,3695,3705,865},{336,853,3476},{349},{355,417}},
+	{3117, 3142, 1471, 1480, 349, 3159, 3172, 444, 447, {3184, 3194, 3204, 3212, 3224, 3232, 3242}, {3251, 3254, 3257, 3260, 3263, 3266, 3269}, {3272, 3281, 3290, 3300, 3309, 3318, 3327, 3337, 3344, 3352, 3360, 3370, 322}, {3379, 3385, 3391, 3398, 3404, 3410, 3416, 3423, 3427, 3432, 3437, 3444, 322}, 0, 1, 323, 325, {327,1471},{336,3142},{349},{355,1480}},
+	{3450, 3476, 865, 417, 349, 426, 74, 444, 447, {3493, 3502, 3508, 3514, 3523, 3529, 3538}, {3545, 3550, 3555, 3560, 3565, 3570, 3575}, {3580, 3588, 3597, 3602, 3608, 3612, 3617, 3625, 3631, 3641, 1029, 3649, 322}, {3659, 3665, 3597, 3672, 3608, 3612, 3677, 3625, 3683, 1076, 1081, 3689, 322}, 0, 1, 323, 325, {1091,3695,3705,865},{336,853,3476},{349},{355,417}},
 	{3713, 853, 865, 417, 349, 426, 74, 444, 447, {3734, 3752, 3766, 3784, 3802, 3820, 3836}, {3843, 3846, 3849, 3852, 3855, 3858, 3861}, {3864, 3875, 3888, 3895, 3906, 3913, 3922, 3931, 3944, 3957, 3972, 3985, 322}, {3996, 4003, 3888, 4010, 3906, 4017, 4024, 4031, 4038, 4045, 4052, 4059, 322}, 0, 0, 323, 325, {327,1091,865},{336,853},{349},{355,417}},
-	{4066, 4088, 4102, 1480, 1488, 4116, 4127, 4135, 4138, {4141, 4151, 4159, 4164, 4171, 4184, 4192}, {1696, 4200, 4202, 4204, 4208, 4211, 4213}, {4217, 4225, 4234, 4243, 4252, 4259, 4267, 4275, 4285, 4296, 1932, 1941, 322}, {4305, 4310, 4316, 4323, 4329, 4335, 4341, 4347, 4352, 4359, 1081, 4364, 322}, 0, 0, 323, 325, {327,4369,4102},{336,4088},{349,1488},{355,1729,1480}},
+	{4066, 4088, 4102, 1480, 1488, 4116, 4127, 4135, 4138, {4141, 4151, 4159, 4164, 4171, 4184, 4192}, {1696, 4200, 4202, 4204, 4208, 4211, 4213}, {4217, 4225, 4234, 4243, 4252, 4259, 4267, 4275, 4285, 4296, 1932, 1941, 322}, {4305, 4310, 4316, 4323, 4329, 4335, 4341, 4347, 4352, 4359, 1081, 4364, 322}, 0, 1, 323, 325, {327,4369,4102},{336,4088},{349,1488},{355,1729,1480}},
 	{2003, 1458, 1471, 417, 349, 426, 1493, 444, 447, {4381, 4392, 4403, 4417, 4431, 4443, 4455}, {4467, 4471, 4476, 4481, 4486, 4490, 4495}, {4499, 4507, 3597, 4516, 4523, 4528, 4535, 4542, 1914, 4296, 4550, 4560, 322}, {1950, 1954, 1958, 1962, 4523, 4569, 4574, 4579, 1978, 1982, 4585, 4590, 322}, 0, 0, 323, 325, {327,1471},{336,1458},{349},{355,417}},
-	{4594, 388, 865, 4615, 349, 426, 74, 4623, 4626, {4629, 4638, 4646, 4655, 4666, 4675, 4684}, {4691, 4695, 1958, 4699, 4703, 4707, 4711}, {4715, 4723, 4732, 4738, 4745, 4752, 4759, 4766, 4773, 4783, 1029, 4791, 322}, {4800, 1954, 1958, 1962, 4804, 4808, 4812, 4816, 4820, 4824, 1986, 4828, 322}, 0, 0, 323, 325, {327,1091,865},{336,388},{349},{355,1729,4615}},
+	{4594, 388, 865, 4615, 349, 426, 74, 4623, 4626, {4629, 4638, 4646, 4655, 4666, 4675, 4684}, {4691, 4695, 1958, 4699, 4703, 4707, 4711}, {4715, 4723, 4732, 4738, 4745, 4752, 4759, 4766, 4773, 4783, 1029, 4791, 322}, {4800, 1954, 1958, 1962, 4804, 4808, 4812, 4816, 4820, 4824, 1986, 4828, 322}, 0, 1, 323, 325, {327,1091,865},{336,388},{349},{355,1729,4615}},
 	{4832, 1145, 4862, 1480, 1488, 1206, 1222, 4873, 4880, {4887, 4897, 4907, 4917, 4927, 4937, 4947}, {1319, 4957, 4961, 4965, 4969, 4973, 4977}, {4981, 4986, 4991, 4996, 5001, 5006, 5011, 5016, 5021, 5026, 5032, 5038, 322}, {5044, 5046, 5048, 5050, 5052, 5054, 5056, 5058, 5060, 5062, 5065, 5068, 322}, 0, 0, 323, 325, {4862,4862,327,5071,1167,5078,5097,5114},{1145,1145,5133,5157,5184},{1488,1488,349,5213,5221},{1480,417,5230,5241}},
 	{5253, 5303, 4862, 5327, 5213, 5353, 5370, 5384, 5391, {5398, 5408, 5418, 5428, 5438, 5448, 5458}, {5468, 5472, 5476, 5480, 5484, 5488, 5492}, {5496, 5501, 5506, 5511, 5516, 5521, 5526, 5531, 5536, 5541, 5547, 5553, 322}, {5496, 5501, 5506, 5511, 5516, 5521, 5526, 5531, 5536, 5541, 5547, 5553, 322}, 0, 0, 323, 325, {4862,4862,327,5071,1167,5559,5572},{5303,5303,5583,5609,5631},{5213,1488,349,5655,5669,5684,5213,5221,5700,5717,5735},{5327,5327,5754,5776,1480,417,5800,5825,5230,5241}},
-	{5852, 853, 5872, 1480, 1488, 426, 74, 444, 447, {5881, 5888, 5896, 5904, 5913, 5923, 5931}, {5940, 3254, 5943, 5946, 5949, 5952, 5955}, {5958, 5966, 5975, 1887, 5981, 1897, 1902, 5985, 1914, 1924, 1932, 1941, 322}, {1950, 1954, 5994, 1962, 5981, 1966, 1970, 1974, 1978, 1982, 1986, 1990, 322}, 0, 0, 323, 325, {327,5998,5872},{336,853},{349,1488},{355,1729,1480}},
-	{6005, 1458, 823, 6029, 6040, 426, 1493, 444, 447, {1783, 1791, 1798, 1806, 1813, 1821, 1828}, {6046, 3254, 3257, 6050, 3263, 6053, 6056}, {1866, 1873, 3597, 1887, 3608, 1897, 1902, 1907, 1914, 1924, 1932, 4560, 322}, {1950, 1954, 1958, 1962, 3608, 1966, 1970, 1974, 1978, 1982, 1986, 4590, 322}, 0, 0, 323, 325, {327,823},{336,1458},{349,6040},{355,6029}},
-	{832, 853, 3026, 417, 349, 426, 74, 444, 447, {6060, 6070, 6084, 6091, 6098, 6107, 1561}, {6115, 6117, 6120, 6123, 6127, 6130, 2109}, {6133, 6142, 6147, 6154, 1893, 6164, 6173, 6180, 6190, 6200, 1666, 6213, 322}, {6223, 6227, 1958, 6231, 1893, 6235, 6239, 6243, 6247, 6251, 6256, 6260, 322}, 0, 0, 323, 325, {327,6264,3026},{336,853},{349},{355,417}},
+	{5852, 853, 5872, 1480, 1488, 426, 74, 444, 447, {5881, 5888, 5896, 5904, 5913, 5923, 5931}, {5940, 3254, 5943, 5946, 5949, 5952, 5955}, {5958, 5966, 5975, 1887, 5981, 1897, 1902, 5985, 1914, 1924, 1932, 1941, 322}, {1950, 1954, 5994, 1962, 5981, 1966, 1970, 1974, 1978, 1982, 1986, 1990, 322}, 0, 1, 323, 325, {327,5998,5872},{336,853},{349,1488},{355,1729,1480}},
+	{6005, 1458, 823, 6029, 6040, 426, 1493, 444, 447, {1783, 1791, 1798, 1806, 1813, 1821, 1828}, {6046, 3254, 3257, 6050, 3263, 6053, 6056}, {1866, 1873, 3597, 1887, 3608, 1897, 1902, 1907, 1914, 1924, 1932, 4560, 322}, {1950, 1954, 1958, 1962, 3608, 1966, 1970, 1974, 1978, 1982, 1986, 4590, 322}, 0, 1, 323, 325, {327,823},{336,1458},{349,6040},{355,6029}},
+	{832, 853, 3026, 417, 349, 426, 74, 444, 447, {6060, 6070, 6084, 6091, 6098, 6107, 1561}, {6115, 6117, 6120, 6123, 6127, 6130, 2109}, {6133, 6142, 6147, 6154, 1893, 6164, 6173, 6180, 6190, 6200, 1666, 6213, 322}, {6223, 6227, 1958, 6231, 1893, 6235, 6239, 6243, 6247, 6251, 6256, 6260, 322}, 0, 1, 323, 325, {327,6264,3026},{336,853},{349},{355,417}},
 	{6273, 6304, 37, 417, 349, 6326, 6331, 444, 447, {6343, 6351, 6365, 6378, 6391, 6404, 6416}, {4691, 6424, 6428, 6432, 6436, 6440, 6444}, {6449, 6457, 6467, 983, 6474, 6479, 6485, 4766, 6491, 6500, 6508, 6517, 322}, {1950, 6526, 1958, 6530, 3608, 1966, 1970, 4816, 4820, 6534, 1986, 6538, 322}, 0, 0, 323, 325, {327,1772,1091,37},{336,6304},{349},{355,6542,417}},
-	{832, 853, 2025, 417, 349, 426, 74, 444, 447, {6559, 6569, 6574, 6581, 6590, 6594, 6601}, {6612, 6614, 6616, 2118, 6619, 1696, 6621}, {6623, 6632, 6642, 6649, 3608, 6657, 6663, 1907, 6669, 6680, 6690, 6700, 322}, {6710, 2218, 2987, 2226, 2157, 6714, 6718, 2238, 2242, 2991, 2250, 2995, 322}, 0, 0, 323, 325, {327,2025},{336,853},{349},{355,417}},
-	{6722, 6748, 2025, 1480, 1488, 6766, 74, 444, 447, {6782, 6805, 484, 6828, 6839, 6854, 6869}, {6884, 6889, 6894, 6899, 6904, 6909, 6914}, {6919, 6932, 6947, 6956, 6969, 6976, 6985, 6994, 7007, 7024, 7039, 7052, 322}, {7067, 7074, 7081, 7088, 657, 7095, 7102, 7109, 7116, 7123, 7130, 7137, 322}, 0, 0, 323, 325, {327,823,2025},{336,6748},{349,1488},{355,1729,1480}},
-	{7144, 7166, 1471, 1480, 349, 4116, 7180, 444, 447, {7188, 7197, 7209, 7216, 7224, 7234, 7240}, {7247, 7251, 7255, 7259, 7263, 7268, 7272}, {7276, 7286, 7295, 7303, 7311, 7319, 7326, 7333, 7341, 1666, 7347, 7355, 322}, {7364, 7368, 7372, 7377, 7381, 6239, 7385, 7389, 7393, 6256, 7397, 7401, 322}, 0, 0, 323, 325, {327,7405,1471},{336,7166},{349},{355,1480}},
-	{1437, 1458, 7416, 1480, 1488, 426, 1493, 444, 447, {7427, 7435, 7444, 7451, 7458, 7467, 7474}, {7481, 7484, 7487, 7490, 7493, 7497, 2109}, {4217, 4225, 7500, 4516, 7506, 4569, 4574, 1907, 1914, 4296, 1932, 1941, 322}, {1950, 1954, 1958, 1962, 7506, 4569, 4574, 1974, 1978, 1982, 1986, 1990, 322}, 0, 0, 323, 325, {327,1471,7416},{336,1458},{349,1488},{355,1729,1480}},
-	{7511, 388, 3026, 7535, 7546, 426, 436, 7553, 7556, {7559, 7566, 7575, 7584, 7596, 7604, 7613}, {7623, 7627, 2987, 7632, 7637, 7641, 7645}, {7649, 7655, 3597, 7662, 1893, 7668, 7676, 7683, 7689, 7697, 7703, 7711, 322}, {2214, 7719, 2987, 7723, 7727, 7731, 7735, 7739, 7645, 7743, 7747, 7752, 322}, 0, 0, 323, 325, {327,6264,3026},{336,388},{349,7546},{355,7756,7535}},
-	{7768, 7794, 3026, 417, 349, 426, 74, 7811, 7814, {7817, 7825, 7833, 1806, 1813, 1821, 7840}, {7848, 7852, 3257, 6050, 3263, 6053, 7856}, {5958, 5966, 3597, 1887, 1893, 1897, 1902, 7860, 1914, 1924, 1932, 1941, 322}, {1950, 1954, 1958, 1962, 1893, 1966, 1970, 1974, 1978, 1982, 1986, 1990, 322}, 0, 0, 323, 325, {327,3026},{336,7794},{349,6040},{355,6029,417}},
+	{832, 853, 2025, 417, 349, 426, 74, 444, 447, {6559, 6569, 6574, 6581, 6590, 6594, 6601}, {6612, 6614, 6616, 2118, 6619, 1696, 6621}, {6623, 6632, 6642, 6649, 3608, 6657, 6663, 1907, 6669, 6680, 6690, 6700, 322}, {6710, 2218, 2987, 2226, 2157, 6714, 6718, 2238, 2242, 2991, 2250, 2995, 322}, 0, 1, 323, 325, {327,2025},{336,853},{349},{355,417}},
+	{6722, 6748, 2025, 1480, 1488, 6766, 74, 444, 447, {6782, 6805, 484, 6828, 6839, 6854, 6869}, {6884, 6889, 6894, 6899, 6904, 6909, 6914}, {6919, 6932, 6947, 6956, 6969, 6976, 6985, 6994, 7007, 7024, 7039, 7052, 322}, {7067, 7074, 7081, 7088, 657, 7095, 7102, 7109, 7116, 7123, 7130, 7137, 322}, 0, 1, 323, 325, {327,823,2025},{336,6748},{349,1488},{355,1729,1480}},
+	{7144, 7166, 1471, 1480, 349, 4116, 7180, 444, 447, {7188, 7197, 7209, 7216, 7224, 7234, 7240}, {7247, 7251, 7255, 7259, 7263, 7268, 7272}, {7276, 7286, 7295, 7303, 7311, 7319, 7326, 7333, 7341, 1666, 7347, 7355, 322}, {7364, 7368, 7372, 7377, 7381, 6239, 7385, 7389, 7393, 6256, 7397, 7401, 322}, 0, 1, 323, 325, {327,7405,1471},{336,7166},{349},{355,1480}},
+	{1437, 1458, 7416, 1480, 1488, 426, 1493, 444, 447, {7427, 7435, 7444, 7451, 7458, 7467, 7474}, {7481, 7484, 7487, 7490, 7493, 7497, 2109}, {4217, 4225, 7500, 4516, 7506, 4569, 4574, 1907, 1914, 4296, 1932, 1941, 322}, {1950, 1954, 1958, 1962, 7506, 4569, 4574, 1974, 1978, 1982, 1986, 1990, 322}, 0, 1, 323, 325, {327,1471,7416},{336,1458},{349,1488},{355,1729,1480}},
+	{7511, 388, 3026, 7535, 7546, 426, 436, 7553, 7556, {7559, 7566, 7575, 7584, 7596, 7604, 7613}, {7623, 7627, 2987, 7632, 7637, 7641, 7645}, {7649, 7655, 3597, 7662, 1893, 7668, 7676, 7683, 7689, 7697, 7703, 7711, 322}, {2214, 7719, 2987, 7723, 7727, 7731, 7735, 7739, 7645, 7743, 7747, 7752, 322}, 0, 1, 323, 325, {327,6264,3026},{336,388},{349,7546},{355,7756,7535}},
+	{7768, 7794, 3026, 417, 349, 426, 74, 7811, 7814, {7817, 7825, 7833, 1806, 1813, 1821, 7840}, {7848, 7852, 3257, 6050, 3263, 6053, 7856}, {5958, 5966, 3597, 1887, 1893, 1897, 1902, 7860, 1914, 1924, 1932, 1941, 322}, {1950, 1954, 1958, 1962, 1893, 1966, 1970, 1974, 1978, 1982, 1986, 1990, 322}, 0, 1, 323, 325, {327,3026},{336,7794},{349,6040},{355,6029,417}},
 	{7868, 853, 37, 1480, 1488, 426, 74, 7889, 7920, {7951, 7982, 8010, 8038, 8057, 8091, 8116}, {8141, 8149, 8154, 8159, 8164, 8172, 8177}, {8182, 8201, 8232, 8251, 8270, 8292, 8317, 8339, 8361, 8383, 8402, 8430, 322}, {8452, 8461, 8470, 8482, 8494, 8503, 8515, 8524, 8533, 8542, 8551, 8560, 322}, 0, 0, 323, 325, {327,37},{336,853},{349,1488},{355,8569,1480}},
-	{8609, 8636, 2025, 417, 349, 426, 436, 444, 447, {8654, 8660, 8670, 8676, 8687, 8697, 8702}, {8712, 8716, 8720, 8724, 8729, 8733, 8737}, {8741, 8746, 8753, 8758, 8764, 8771, 8779, 8786, 8795, 8802, 8807, 8814, 322}, {8822, 8826, 2987, 8831, 2956, 8835, 8839, 8843, 8848, 8852, 8856, 8860, 322}, 0, 0, 323, 325, {327,2025},{336,8636},{349},{355,417}},
+	{8609, 8636, 2025, 417, 349, 426, 436, 444, 447, {8654, 8660, 8670, 8676, 8687, 8697, 8702}, {8712, 8716, 8720, 8724, 8729, 8733, 8737}, {8741, 8746, 8753, 8758, 8764, 8771, 8779, 8786, 8795, 8802, 8807, 8814, 322}, {8822, 8826, 2987, 8831, 2956, 8835, 8839, 8843, 8848, 8852, 8856, 8860, 322}, 0, 1, 323, 325, {327,2025},{336,8636},{349},{355,417}},
 	{8864, 388, 865, 1480, 1488, 426, 436, 444, 447, {8885, 8892, 8898, 8905, 8910, 8916, 8922}, {8928, 8932, 8936, 8940, 8944, 8948, 8952}, {8956, 8964, 8973, 2151, 8979, 2161, 2166, 8983, 2178, 2188, 2196, 8991, 322}, {2214, 2218, 2987, 2226, 8979, 2230, 2234, 9000, 2242, 2246, 2250, 9004, 322}, 0, 0, 323, 325, {327,1091,865},{336,388},{349,1488},{355,1480}},
-	{5852, 853, 2025, 1480, 349, 9008, 74, 444, 447, {9024, 9037, 9056, 9073, 9086, 9099, 9115}, {9128, 6889, 6894, 6899, 6904, 6909, 6914}, {9133, 9144, 9157, 9172, 9185, 9198, 9211, 9222, 9235, 9250, 9263, 9282, 322}, {9295, 9302, 9309, 9316, 9325, 9334, 9343, 9350, 9359, 9366, 9375, 9384, 322}, 0, 0, 323, 325, {327,823,2025},{336,853},{349},{355,1480}},
-	{5852, 853, 2025, 1480, 6040, 426, 74, 444, 447, {9393, 9408, 9429, 9444, 9457, 9470, 9485}, {9498, 9503, 9508, 9513, 9518, 9523, 9528}, {9533, 9550, 9559, 9574, 657, 9591, 9606, 9619, 9634, 9651, 9672, 9689, 322}, {9704, 9302, 9711, 9718, 657, 9725, 9732, 9739, 9359, 9746, 9753, 9760, 322}, 0, 0, 323, 325, {327,1722,2025},{336,853},{349,6040},{355,6029,1480}},
-	{9767, 9789, 1471, 1480, 1488, 426, 9803, 444, 447, {9812, 9820, 9831, 9837, 9843, 9852, 1561}, {7247, 7251, 1853, 9858, 7263, 7268, 9862}, {1866, 1873, 7500, 1887, 1893, 9866, 9872, 9878, 1914, 1924, 1932, 1941, 322}, {1950, 1954, 1958, 1962, 1893, 1966, 1970, 9885, 1978, 1982, 1986, 1990, 322}, 0, 0, 323, 325, {327,9889,1471},{336,9789},{349,1488},{355,1729,1480}},
-	{5852, 853, 9896, 1480, 1488, 426, 9906, 444, 447, {9914, 9925, 9936, 9947, 9958, 9969, 9975}, {4211, 9984, 9986, 4202, 6115, 9988, 6614}, {9990, 9998, 10007, 10014, 3608, 10021, 10027, 1907, 1914, 10033, 1932, 10042, 322}, {10052, 10057, 10007, 1962, 3608, 10021, 10027, 1974, 10063, 1982, 1986, 10068, 322}, 0, 0, 323, 325, {327,823,9896},{336,853},{349,1488},{355,1729,1480}},
-	{10073, 10102, 4369, 1480, 349, 10123, 1493, 444, 447, {10141, 10152, 10162, 10171, 10182, 10194, 10205}, {10215, 4211, 10218, 9986, 10220, 10222, 6621}, {10225, 10235, 1881, 10246, 10255, 10261, 10269, 10277, 10285, 10296, 10305, 10315, 322}, {2214, 2218, 2987, 2226, 2157, 10325, 10330, 2238, 2242, 2246, 2250, 2995, 322}, 0, 0, 323, 325, {327,10335,4369},{336,10102},{349},{355,1480}},
-	{10342, 10373, 7405, 417, 349, 10395, 10410, 444, 447, {10422, 10434, 10446, 10458, 10472, 10487, 10500}, {10514, 10517, 10520, 10523, 10526, 6117, 7493}, {10529, 10536, 10544, 10549, 10560, 10570, 10580, 10587, 10599, 10608, 10615, 10626, 322}, {10636, 10640, 10644, 10648, 10652, 10656, 10660, 10664, 10668, 10672, 10676, 10680, 322}, 0, 0, 323, 325, {327,7405},{336,10373},{349},{355,417}},
-	{10684, 853, 2824, 3105, 349, 426, 74, 10708, 10715, {10722, 10738, 10751, 10767, 10784, 10802, 10811}, {10820, 10824, 10828, 10832, 10836, 10840, 10844}, {10848, 10861, 208, 10872, 10883, 10888, 10897, 10908, 10915, 10930, 10941, 10954, 322}, {10967, 10974, 10981, 10988, 10995, 11002, 11009, 10908, 11016, 11023, 11030, 11037, 322}, 0, 0, 323, 325, {327,11044,2824},{336,853},{349},{355,11054,3105}},
-	{11067, 388, 865, 2282, 349, 426, 436, 11091, 11094, {11097, 11110, 11120, 11129, 11139, 11150, 11161}, {11173, 11176, 11181, 11186, 11191, 11196, 11201}, {11206, 11219, 11230, 11240, 11251, 11263, 11275, 11288, 11300, 11313, 11328, 11349, 322}, {11368, 11374, 11380, 11386, 11392, 11398, 11404, 11410, 11416, 11422, 11429, 11436, 322}, 0, 0, 323, 325, {327,865},{336,388},{349},{355,2282}},
-	{11443, 3047, 2025, 1480, 349, 426, 2841, 11465, 11473, {11481, 11494, 11515, 11534, 11555, 11574, 11587}, {11598, 11605, 11612, 11619, 11626, 11633, 11640}, {11647, 11662, 11677, 11686, 11697, 11708, 11721, 11734, 11749, 11768, 11787, 11804, 322}, {11823, 11830, 11837, 11844, 11851, 11858, 11865, 11872, 11879, 11886, 11893, 11900, 322}, 0, 0, 323, 325, {327,3006,2025},{336,3047},{349},{355,1480}},
-	{11907, 11946, 4862, 417, 349, 11976, 7180, 444, 447, {11991, 11999, 12010, 12020, 12031, 12040, 12049}, {12059, 12062, 12065, 12068, 12071, 12074, 12077}, {12080, 12090, 12098, 12106, 12114, 12122, 12129, 12137, 12145, 12152, 12158, 12165, 322}, {12173, 12177, 1958, 12181, 3608, 12185, 12189, 12193, 12197, 12201, 12205, 12209, 322}, 0, 0, 323, 325, {327,12213,4862},{336,11946},{349},{355,417}},
-	{366, 388, 2025, 417, 349, 426, 436, 444, 447, {12226, 463, 484, 6828, 12239, 12256, 12267}, {553, 561, 569, 12280, 12288, 591, 12296}, {12304, 620, 637, 646, 12319, 12326, 12335, 678, 691, 710, 727, 742, 322}, {12344, 765, 12352, 773, 12360, 12368, 12376, 781, 12384, 797, 805, 12394, 322}, 0, 0, 323, 325, {327,12406,2025},{336,388},{349},{355,417}},
+	{5852, 853, 2025, 1480, 349, 9008, 74, 444, 447, {9024, 9037, 9056, 9073, 9086, 9099, 9115}, {9128, 6889, 6894, 6899, 6904, 6909, 6914}, {9133, 9144, 9157, 9172, 9185, 9198, 9211, 9222, 9235, 9250, 9263, 9282, 322}, {9295, 9302, 9309, 9316, 9325, 9334, 9343, 9350, 9359, 9366, 9375, 9384, 322}, 0, 1, 323, 325, {327,823,2025},{336,853},{349},{355,1480}},
+	{5852, 853, 2025, 1480, 6040, 426, 74, 444, 447, {9393, 9408, 9429, 9444, 9457, 9470, 9485}, {9498, 9503, 9508, 9513, 9518, 9523, 9528}, {9533, 9550, 9559, 9574, 657, 9591, 9606, 9619, 9634, 9651, 9672, 9689, 322}, {9704, 9302, 9711, 9718, 657, 9725, 9732, 9739, 9359, 9746, 9753, 9760, 322}, 0, 1, 323, 325, {327,1722,2025},{336,853},{349,6040},{355,6029,1480}},
+	{9767, 9789, 1471, 1480, 1488, 426, 9803, 444, 447, {9812, 9820, 9831, 9837, 9843, 9852, 1561}, {7247, 7251, 1853, 9858, 7263, 7268, 9862}, {1866, 1873, 7500, 1887, 1893, 9866, 9872, 9878, 1914, 1924, 1932, 1941, 322}, {1950, 1954, 1958, 1962, 1893, 1966, 1970, 9885, 1978, 1982, 1986, 1990, 322}, 0, 1, 323, 325, {327,9889,1471},{336,9789},{349,1488},{355,1729,1480}},
+	{5852, 853, 9896, 1480, 1488, 426, 9906, 444, 447, {9914, 9925, 9936, 9947, 9958, 9969, 9975}, {4211, 9984, 9986, 4202, 6115, 9988, 6614}, {9990, 9998, 10007, 10014, 3608, 10021, 10027, 1907, 1914, 10033, 1932, 10042, 322}, {10052, 10057, 10007, 1962, 3608, 10021, 10027, 1974, 10063, 1982, 1986, 10068, 322}, 0, 1, 323, 325, {327,823,9896},{336,853},{349,1488},{355,1729,1480}},
+	{10073, 10102, 4369, 1480, 349, 10123, 1493, 444, 447, {10141, 10152, 10162, 10171, 10182, 10194, 10205}, {10215, 4211, 10218, 9986, 10220, 10222, 6621}, {10225, 10235, 1881, 10246, 10255, 10261, 10269, 10277, 10285, 10296, 10305, 10315, 322}, {2214, 2218, 2987, 2226, 2157, 10325, 10330, 2238, 2242, 2246, 2250, 2995, 322}, 0, 1, 323, 325, {327,10335,4369},{336,10102},{349},{355,1480}},
+	{10342, 10373, 7405, 417, 349, 10395, 10410, 444, 447, {10422, 10434, 10446, 10458, 10472, 10487, 10500}, {10514, 10517, 10520, 10523, 10526, 6117, 7493}, {10529, 10536, 10544, 10549, 10560, 10570, 10580, 10587, 10599, 10608, 10615, 10626, 322}, {10636, 10640, 10644, 10648, 10652, 10656, 10660, 10664, 10668, 10672, 10676, 10680, 322}, 0, 1, 323, 325, {327,7405},{336,10373},{349},{355,417}},
+	{10684, 853, 2824, 3105, 349, 426, 74, 10708, 10715, {10722, 10738, 10751, 10767, 10784, 10802, 10811}, {10820, 10824, 10828, 10832, 10836, 10840, 10844}, {10848, 10861, 208, 10872, 10883, 10888, 10897, 10908, 10915, 10930, 10941, 10954, 322}, {10967, 10974, 10981, 10988, 10995, 11002, 11009, 10908, 11016, 11023, 11030, 11037, 322}, 0, 6, 323, 325, {327,11044,2824},{336,853},{349},{355,11054,3105}},
+	{11067, 388, 865, 2282, 349, 426, 436, 11091, 11094, {11097, 11110, 11120, 11129, 11139, 11150, 11161}, {11173, 11176, 11181, 11186, 11191, 11196, 11201}, {11206, 11219, 11230, 11240, 11251, 11263, 11275, 11288, 11300, 11313, 11328, 11349, 322}, {11368, 11374, 11380, 11386, 11392, 11398, 11404, 11410, 11416, 11422, 11429, 11436, 322}, 0, 1, 323, 325, {327,865},{336,388},{349},{355,2282}},
+	{11443, 3047, 2025, 1480, 349, 426, 2841, 11465, 11473, {11481, 11494, 11515, 11534, 11555, 11574, 11587}, {11598, 11605, 11612, 11619, 11626, 11633, 11640}, {11647, 11662, 11677, 11686, 11697, 11708, 11721, 11734, 11749, 11768, 11787, 11804, 322}, {11823, 11830, 11837, 11844, 11851, 11858, 11865, 11872, 11879, 11886, 11893, 11900, 322}, 0, 1, 323, 325, {327,3006,2025},{336,3047},{349},{355,1480}},
+	{11907, 11946, 4862, 417, 349, 11976, 7180, 444, 447, {11991, 11999, 12010, 12020, 12031, 12040, 12049}, {12059, 12062, 12065, 12068, 12071, 12074, 12077}, {12080, 12090, 12098, 12106, 12114, 12122, 12129, 12137, 12145, 12152, 12158, 12165, 322}, {12173, 12177, 1958, 12181, 3608, 12185, 12189, 12193, 12197, 12201, 12205, 12209, 322}, 0, 1, 323, 325, {327,12213,4862},{336,11946},{349},{355,417}},
+	{366, 388, 2025, 417, 349, 426, 436, 444, 447, {12226, 463, 484, 6828, 12239, 12256, 12267}, {553, 561, 569, 12280, 12288, 591, 12296}, {12304, 620, 637, 646, 12319, 12326, 12335, 678, 691, 710, 727, 742, 322}, {12344, 765, 12352, 773, 12360, 12368, 12376, 781, 12384, 797, 805, 12394, 322}, 0, 1, 323, 325, {327,12406,2025},{336,388},{349},{355,417}},
 	{12414, 388, 4862, 3105, 56, 426, 436, 322, 322, {12439, 12446, 12454, 12462, 12471, 12481, 12488}, {2109, 6616, 2115, 12497, 2121, 12500, 2127}, {12503, 12512, 12522, 2151, 8979, 12528, 12534, 12540, 2178, 2188, 2196, 8991, 322}, {2214, 2218, 2987, 2226, 8979, 2230, 2234, 2238, 2242, 2246, 2250, 9004, 322}, 0, 0, 323, 325, {327,4862},{336,388},{349,56},{355,46,3105}},
 	{12549, 1760, 1772, 12570, 349, 426, 436, 444, 447, {4381, 12579, 12590, 12600, 12610, 12620, 12634}, {4467, 4471, 12646, 12651, 12655, 12660, 12665}, {1866, 1873, 3597, 4516, 3608, 1897, 1902, 1907, 1914, 1924, 1932, 4560, 322}, {1950, 1954, 1958, 1962, 3608, 1966, 1970, 1974, 1978, 1982, 1986, 4590, 322}, 0, 0, 323, 325, {327,1994,1772},{336,1760},{349},{355,12570}},
 	{832, 853, 1772, 417, 56, 426, 74, 12669, 12697, {12719, 12738, 12757, 12779, 12798, 12820, 12845}, {12864, 12874, 12884, 12897, 12907, 12920, 12936}, {12946, 12962, 12978, 12994, 13013, 13020, 13030, 13046, 13062, 13084, 13106, 13125, 322}, {12946, 12962, 12978, 12994, 13013, 13020, 13030, 13046, 13062, 13084, 13106, 13125, 322}, 0, 0, 323, 325, {327,5998,1772},{336,853},{349,56},{355,2761,417}},
-	{13147, 336, 2824, 13171, 349, 13182, 7180, 444, 447, {13192, 13201, 13210, 13218, 13227, 13236, 13243}, {13252, 13256, 13260, 13264, 13268, 13272, 13276}, {8956, 8964, 13280, 13286, 8979, 2161, 13293, 13299, 13306, 13315, 13322, 13330, 322}, {2214, 2218, 2987, 2226, 8979, 2230, 2234, 13338, 2242, 2246, 2250, 9004, 322}, 0, 0, 323, 325, {327,2824},{336},{349},{355,13171}},
+	{13147, 336, 2824, 13171, 349, 13182, 7180, 444, 447, {13192, 13201, 13210, 13218, 13227, 13236, 13243}, {13252, 13256, 13260, 13264, 13268, 13272, 13276}, {8956, 8964, 13280, 13286, 8979, 2161, 13293, 13299, 13306, 13315, 13322, 13330, 322}, {2214, 2218, 2987, 2226, 8979, 2230, 2234, 13338, 2242, 2246, 2250, 9004, 322}, 0, 6, 323, 325, {327,2824},{336},{349},{355,13171}},
 	{13342, 853, 13367, 13375, 13388, 426, 74, 13396, 13438, {13480, 13499, 13518, 13540, 13559, 13581, 13606}, {13625, 13635, 13645, 13658, 13668, 13681, 13697}, {13707, 13735, 13763, 13779, 13798, 13805, 13815, 13831, 13847, 13875, 13897, 13919, 322}, {13944, 13963, 13763, 13779, 13798, 13805, 13815, 13831, 13982, 13998, 14014, 14024, 322}, 0, 0, 323, 325, {327,13367},{336,853},{349,13388},{355,13375}},
 	{14037, 853, 5998, 2761, 56, 426, 74, 14061, 14074, {14087, 14106, 14128, 14153, 14169, 14191, 14210}, {14220, 14227, 14234, 14241, 14248, 14255, 14262}, {14266, 14282, 14307, 14326, 14345, 14352, 14365, 14378, 14397, 14428, 14453, 14475, 322}, {14500, 14508, 14522, 14536, 14345, 14352, 14365, 14547, 14555, 14569, 14580, 14588, 322}, 0, 0, 323, 325, {327,5998},{336,853},{349,56},{355,2761}},
 	{14037, 853, 1994, 2761, 56, 426, 74, 14599, 14627, {14649, 14671, 14693, 14718, 14740, 14765, 14793}, {14815, 14825, 14835, 14848, 14858, 14871, 14887}, {14897, 14913, 14938, 14957, 14979, 14986, 14999, 15012, 15031, 15062, 15087, 15106, 322}, {14897, 14913, 14938, 14957, 14979, 14986, 14999, 15012, 15031, 15062, 15087, 15106, 322}, 0, 0, 323, 325, {327,1994},{336,853},{349,56},{355,2761}},
 	{13342, 853, 5998, 13375, 13388, 426, 74, 15131, 15159, {15181, 15200, 15219, 15241, 15260, 15282, 15307}, {15326, 15331, 15339, 15347, 15355, 15363, 15371}, {15382, 15398, 15423, 15442, 15464, 15471, 15484, 15497, 15516, 15544, 15569, 15591, 322}, {15382, 15398, 15423, 15442, 15464, 15471, 15484, 15497, 15516, 15544, 15569, 15591, 322}, 0, 0, 323, 325, {327,5998},{336,853},{349,13388},{355,13375}},
 	{14037, 853, 5998, 2761, 56, 426, 74, 15616, 15628, {12719, 12738, 15640, 12779, 12798, 12820, 12845}, {12864, 12874, 15662, 12897, 12907, 12920, 12936}, {15675, 15700, 12978, 15725, 15744, 13020, 15751, 15764, 15780, 15808, 15830, 15858, 322}, {15675, 15700, 12978, 15725, 15744, 13020, 15751, 15764, 15780, 15808, 15830, 15858, 322}, 0, 0, 323, 325, {327,5998},{336,853},{349,56},{355,2761}},
-	{15880, 388, 1091, 355, 349, 426, 436, 444, 447, {15904, 15912, 15917, 15924, 15934, 15940, 15947}, {15955, 15959, 2987, 15963, 15968, 15972, 15976}, {15981, 15989, 15998, 16004, 16010, 16015, 16021, 16027, 16034, 16043, 16051, 16060, 322}, {16069, 2218, 2987, 16073, 2157, 16077, 16082, 13338, 16086, 16090, 2250, 2995, 322}, 0, 0, 323, 325, {327,1091},{336,388},{349},{355}},
+	{15880, 388, 1091, 355, 349, 426, 436, 444, 447, {15904, 15912, 15917, 15924, 15934, 15940, 15947}, {15955, 15959, 2987, 15963, 15968, 15972, 15976}, {15981, 15989, 15998, 16004, 16010, 16015, 16021, 16027, 16034, 16043, 16051, 16060, 322}, {16069, 2218, 2987, 16073, 2157, 16077, 16082, 13338, 16086, 16090, 2250, 2995, 322}, 0, 1, 323, 325, {327,1091},{336,388},{349},{355}},
 	{14037, 853, 5998, 2761, 56, 426, 74, 15616, 15628, {16094, 12738, 16122, 12779, 12798, 12820, 12845}, {12864, 12874, 15662, 12897, 12907, 12920, 12936}, {15675, 16141, 12978, 15725, 15744, 13020, 15751, 15764, 15780, 15808, 15830, 15858, 322}, {15675, 15700, 12978, 15725, 15744, 13020, 15751, 15764, 15780, 15808, 15830, 15858, 322}, 0, 0, 323, 325, {327,5998},{336,853},{349,56},{355,2761}},
-	{1, 24, 37, 46, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {16172, 16175, 16178, 16181, 16184, 16187, 16190}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 0, 323, 325, {327,37},{336,24},{349,56},{355,46}},
+	{1, 24, 37, 46, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {16172, 16175, 16178, 16181, 16184, 16187, 16190}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 6, 323, 325, {327,37},{336,24},{349,56},{355,46}},
 	{16193, 1145, 16238, 16245, 16268, 1206, 1222, 1235, 1242, {1249, 1259, 1269, 1279, 1289, 1299, 1309}, {1319, 1323, 1327, 1331, 1335, 1339, 1343}, {1347, 1354, 1361, 1368, 1375, 1382, 1389, 1396, 1403, 1410, 1417, 1427, 322}, {1347, 1354, 1361, 1368, 1375, 1382, 1389, 1396, 1403, 1410, 1417, 1427, 322}, 0, 0, 323, 325, {327,16238},{336,1145},{349,16268},{355,16245}},
-	{2003, 1458, 2025, 417, 349, 426, 1493, 2036, 2042, {2049, 2057, 2064, 2073, 2082, 2093, 2101}, {2109, 2112, 2115, 2118, 2121, 2124, 2127}, {2130, 2137, 2145, 2151, 2157, 2161, 2166, 2171, 2178, 2188, 2196, 2205, 322}, {2214, 2218, 2222, 2226, 2157, 2230, 2234, 2238, 2242, 2246, 2250, 2254, 322}, 0, 0, 323, 325, {327,823,2025},{336,1458},{349},{355,417}},
-	{832, 853, 865, 417, 349, 426, 74, 444, 447, {2848, 2855, 2862, 2870, 2880, 2889, 2896}, {2905, 2909, 2913, 2917, 2921, 2925, 2929}, {2933, 2941, 2950, 2151, 2956, 2960, 2965, 2171, 2178, 2970, 2196, 2978, 322}, {2214, 2218, 2987, 2226, 2956, 2230, 2234, 2238, 2242, 2991, 2250, 2995, 322}, 0, 0, 323, 325, {327,2999,865},{2804,2804,3047,3061,3081,853},{2833,2833,3096,1488,349},{2282,2282,3105,1480,417,355}},
-	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 0, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,13388},{355,3105,13375}},
-	{5852, 853, 3695, 1480, 349, 426, 74, 444, 447, {3493, 3502, 3508, 3514, 3523, 3529, 3538}, {3545, 3550, 3555, 3560, 3565, 3570, 3575}, {3580, 3588, 3597, 3602, 3608, 3612, 3617, 3625, 3631, 3641, 1029, 3649, 322}, {3659, 3665, 3597, 3672, 3608, 3612, 3677, 3625, 3683, 1076, 1081, 3689, 322}, 0, 0, 323, 325, {1091,3695,3705},{336,853,3476},{349},{355,417,1480}},
-	{832, 853, 2025, 417, 349, 426, 74, 4623, 4626, {4629, 4638, 4646, 4655, 4666, 4675, 4684}, {4691, 4695, 1958, 4699, 4703, 4707, 4711}, {4715, 4723, 4732, 4738, 4745, 4752, 4759, 4766, 4773, 4783, 1029, 4791, 322}, {4800, 1954, 1958, 1962, 4804, 4808, 4812, 4816, 4820, 4824, 1986, 4828, 322}, 0, 0, 323, 325, {327,1091,823,2025},{336,388,853},{349},{355,417}},
-	{5852, 853, 3695, 1480, 349, 426, 74, 444, 447, {5881, 5888, 5896, 5904, 5913, 5923, 5931}, {5940, 3254, 5943, 5946, 5949, 5952, 5955}, {5958, 5966, 5975, 1887, 5981, 1897, 1902, 5985, 1914, 1924, 1932, 1941, 322}, {1950, 1954, 5994, 1962, 5981, 1966, 1970, 1974, 1978, 1982, 1986, 1990, 322}, 0, 0, 323, 325, {327,5998,3705,3695},{336,853},{349,1488},{355,1729,1480}},
-	{6005, 1458, 823, 6029, 6040, 426, 1493, 444, 447, {1783, 1791, 1798, 1806, 1813, 1821, 1828}, {6046, 3254, 3257, 6050, 3263, 6053, 6056}, {1866, 1873, 3597, 1887, 3608, 1897, 1902, 1907, 1914, 1924, 1932, 4560, 322}, {1950, 1954, 1958, 1962, 3608, 1966, 1970, 1974, 1978, 1982, 1986, 4590, 322}, 0, 0, 323, 325, {327,823},{336,1458},{349,6040},{355,6029}},
-	{16444, 6304, 1772, 1480, 349, 6326, 6331, 444, 447, {6343, 6351, 6365, 6378, 6391, 6404, 6416}, {4691, 6424, 6428, 6432, 6436, 6440, 6444}, {6449, 6457, 6467, 983, 6474, 6479, 6485, 4766, 6491, 6500, 6508, 6517, 322}, {1950, 6526, 1958, 6530, 3608, 1966, 1970, 4816, 4820, 6534, 1986, 6538, 322}, 0, 0, 323, 325, {327,1772},{336,6304},{349},{355,1480}},
-	{7768, 7794, 1471, 417, 6040, 426, 74, 7811, 7814, {7817, 7825, 7833, 1806, 1813, 1821, 7840}, {7848, 7852, 3257, 6050, 3263, 6053, 7856}, {5958, 5966, 3597, 1887, 1893, 1897, 1902, 7860, 1914, 1924, 1932, 1941, 322}, {1950, 1954, 1958, 1962, 1893, 1966, 1970, 1974, 1978, 1982, 1986, 1990, 322}, 0, 0, 323, 325, {327,3026,1471},{336,7794},{349,6040},{355,6029,417}},
-	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {16172, 16175, 16178, 16181, 16184, 16187, 16190}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 0, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
+	{2003, 1458, 2025, 417, 349, 426, 1493, 2036, 2042, {2049, 2057, 2064, 2073, 2082, 2093, 2101}, {2109, 2112, 2115, 2118, 2121, 2124, 2127}, {2130, 2137, 2145, 2151, 2157, 2161, 2166, 2171, 2178, 2188, 2196, 2205, 322}, {2214, 2218, 2222, 2226, 2157, 2230, 2234, 2238, 2242, 2246, 2250, 2254, 322}, 0, 1, 323, 325, {327,823,2025},{336,1458},{349},{355,417}},
+	{832, 853, 865, 417, 349, 426, 74, 444, 447, {2848, 2855, 2862, 2870, 2880, 2889, 2896}, {2905, 2909, 2913, 2917, 2921, 2925, 2929}, {2933, 2941, 2950, 2151, 2956, 2960, 2965, 2171, 2178, 2970, 2196, 2978, 322}, {2214, 2218, 2987, 2226, 2956, 2230, 2234, 2238, 2242, 2991, 2250, 2995, 322}, 0, 1, 323, 325, {327,2999,865},{2804,2804,3047,3061,3081,853},{2833,2833,3096,1488,349},{2282,2282,3105,1480,417,355}},
+	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 1, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,13388},{355,3105,13375}},
+	{5852, 853, 3695, 1480, 349, 426, 74, 444, 447, {3493, 3502, 3508, 3514, 3523, 3529, 3538}, {3545, 3550, 3555, 3560, 3565, 3570, 3575}, {3580, 3588, 3597, 3602, 3608, 3612, 3617, 3625, 3631, 3641, 1029, 3649, 322}, {3659, 3665, 3597, 3672, 3608, 3612, 3677, 3625, 3683, 1076, 1081, 3689, 322}, 0, 1, 323, 325, {1091,3695,3705},{336,853,3476},{349},{355,417,1480}},
+	{832, 853, 2025, 417, 349, 426, 74, 4623, 4626, {4629, 4638, 4646, 4655, 4666, 4675, 4684}, {4691, 4695, 1958, 4699, 4703, 4707, 4711}, {4715, 4723, 4732, 4738, 4745, 4752, 4759, 4766, 4773, 4783, 1029, 4791, 322}, {4800, 1954, 1958, 1962, 4804, 4808, 4812, 4816, 4820, 4824, 1986, 4828, 322}, 0, 1, 323, 325, {327,1091,823,2025},{336,388,853},{349},{355,417}},
+	{5852, 853, 3695, 1480, 349, 426, 74, 444, 447, {5881, 5888, 5896, 5904, 5913, 5923, 5931}, {5940, 3254, 5943, 5946, 5949, 5952, 5955}, {5958, 5966, 5975, 1887, 5981, 1897, 1902, 5985, 1914, 1924, 1932, 1941, 322}, {1950, 1954, 5994, 1962, 5981, 1966, 1970, 1974, 1978, 1982, 1986, 1990, 322}, 0, 1, 323, 325, {327,5998,3705,3695},{336,853},{349,1488},{355,1729,1480}},
+	{6005, 1458, 823, 6029, 6040, 426, 1493, 444, 447, {1783, 1791, 1798, 1806, 1813, 1821, 1828}, {6046, 3254, 3257, 6050, 3263, 6053, 6056}, {1866, 1873, 3597, 1887, 3608, 1897, 1902, 1907, 1914, 1924, 1932, 4560, 322}, {1950, 1954, 1958, 1962, 3608, 1966, 1970, 1974, 1978, 1982, 1986, 4590, 322}, 0, 1, 323, 325, {327,823},{336,1458},{349,6040},{355,6029}},
+	{16444, 6304, 1772, 1480, 349, 6326, 6331, 444, 447, {6343, 6351, 6365, 6378, 6391, 6404, 6416}, {4691, 6424, 6428, 6432, 6436, 6440, 6444}, {6449, 6457, 6467, 983, 6474, 6479, 6485, 4766, 6491, 6500, 6508, 6517, 322}, {1950, 6526, 1958, 6530, 3608, 1966, 1970, 4816, 4820, 6534, 1986, 6538, 322}, 0, 1, 323, 325, {327,1772},{336,6304},{349},{355,1480}},
+	{7768, 7794, 1471, 417, 6040, 426, 74, 7811, 7814, {7817, 7825, 7833, 1806, 1813, 1821, 7840}, {7848, 7852, 3257, 6050, 3263, 6053, 7856}, {5958, 5966, 3597, 1887, 1893, 1897, 1902, 7860, 1914, 1924, 1932, 1941, 322}, {1950, 1954, 1958, 1962, 1893, 1966, 1970, 1974, 1978, 1982, 1986, 1990, 322}, 0, 1, 323, 325, {327,3026,1471},{336,7794},{349,6040},{355,6029,417}},
+	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {16172, 16175, 16178, 16181, 16184, 16187, 16190}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 6, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
 	{16499, 5133, 16546, 1176, 16268, 16566, 16583, 1235, 1242, {1249, 1259, 1269, 1279, 1289, 1299, 1309}, {1319, 1323, 1327, 1331, 1335, 1339, 1343}, {1347, 1354, 1361, 1368, 1375, 1382, 1389, 1396, 1403, 1410, 1417, 1427, 322}, {4981, 4986, 4991, 4996, 5001, 5006, 5011, 5016, 5021, 5026, 5032, 5038, 322}, 0, 0, 323, 325, {327,16546},{336,5133},{349,16268},{355,1176}},
-	{16598, 9789, 2025, 417, 349, 426, 9803, 2036, 2042, {2049, 2057, 2064, 2073, 2082, 2093, 2101}, {2109, 2112, 2115, 2118, 2121, 2124, 2127}, {16621, 2137, 2145, 2151, 2157, 2161, 2166, 2171, 2178, 2188, 2196, 2205, 322}, {16629, 2218, 16634, 2226, 2157, 2230, 2234, 2238, 2242, 2246, 2250, 2254, 322}, 0, 0, 323, 325, {327,823,2025},{336,1458,9789},{349},{355,417}},
+	{16598, 9789, 2025, 417, 349, 426, 9803, 2036, 2042, {2049, 2057, 2064, 2073, 2082, 2093, 2101}, {2109, 2112, 2115, 2118, 2121, 2124, 2127}, {16621, 2137, 2145, 2151, 2157, 2161, 2166, 2171, 2178, 2188, 2196, 2205, 322}, {16629, 2218, 16634, 2226, 2157, 2230, 2234, 2238, 2242, 2246, 2250, 2254, 322}, 0, 1, 323, 325, {327,823,2025},{336,1458,9789},{349},{355,417}},
 	{16639, 853, 3695, 2282, 56, 426, 74, 444, 447, {2848, 2855, 2862, 2870, 2880, 2889, 2896}, {2905, 2909, 2913, 2917, 2921, 2925, 2929}, {2933, 2941, 2950, 2151, 2956, 2960, 2965, 2171, 2178, 2970, 2196, 2978, 322}, {2214, 2218, 2987, 2226, 2956, 2230, 2234, 2238, 2242, 2991, 2250, 2995, 322}, 0, 0, 323, 325, {327,2999,3705,3695},{2804,2804,3047,3061,3081,853},{2833,2833,3096,1488,349,56},{2282,2282,3105,1480,417,46}},
-	{16662, 16699, 865, 1480, 1488, 16728, 436, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 0, 323, 325, {327,3705,3015,1091,865},{336,6304,16699},{349,1488},{355,3105,1480}},
+	{16662, 16699, 865, 1480, 1488, 16728, 436, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 1, 323, 325, {327,3705,3015,1091,865},{336,6304,16699},{349,1488},{355,3105,1480}},
 	{832, 853, 3026, 417, 349, 426, 74, 444, 447, {3493, 3502, 3508, 3514, 3523, 3529, 3538}, {3545, 3550, 3555, 3560, 3565, 3570, 3575}, {3580, 3588, 3597, 3602, 3608, 3612, 3617, 3625, 3631, 3641, 1029, 3649, 322}, {3659, 3665, 3597, 3672, 3608, 3612, 3677, 3625, 3683, 1076, 1081, 3689, 322}, 0, 0, 323, 325, {1091,3695,3705,6264,3026},{336,853,3476},{349},{355,417}},
-	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {16172, 16175, 16178, 16181, 16184, 16187, 16190}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 0, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
+	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {16172, 16175, 16178, 16181, 16184, 16187, 16190}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 6, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
 	{16743, 16766, 1091, 16778, 16789, 426, 436, 1235, 1242, {1249, 1259, 1269, 1279, 1289, 1299, 1309}, {1319, 1323, 1327, 1331, 1335, 1339, 1343}, {1347, 1354, 1361, 1368, 1375, 1382, 1389, 1396, 1403, 1410, 1417, 1427, 322}, {1347, 1354, 1361, 1368, 1375, 1382, 1389, 1396, 1403, 1410, 1417, 1427, 322}, 0, 0, 323, 325, {327,1091},{336,16766},{349,16789},{355,16778}},
-	{2003, 1458, 2025, 417, 349, 426, 1493, 2036, 2042, {2049, 2057, 2064, 2073, 2082, 2093, 2101}, {2109, 2112, 2115, 2118, 2121, 2124, 2127}, {2130, 2137, 2145, 2151, 2157, 2161, 2166, 2171, 2178, 2188, 2196, 2205, 322}, {2214, 2218, 2222, 2226, 2157, 2230, 2234, 2238, 2242, 2246, 2250, 2254, 322}, 0, 0, 323, 325, {327,823,2025},{336,1458},{349},{355,417}},
+	{2003, 1458, 2025, 417, 349, 426, 1493, 2036, 2042, {2049, 2057, 2064, 2073, 2082, 2093, 2101}, {2109, 2112, 2115, 2118, 2121, 2124, 2127}, {2130, 2137, 2145, 2151, 2157, 2161, 2166, 2171, 2178, 2188, 2196, 2205, 322}, {2214, 2218, 2222, 2226, 2157, 2230, 2234, 2238, 2242, 2246, 2250, 2254, 322}, 0, 1, 323, 325, {327,823,2025},{336,1458},{349},{355,417}},
 	{16797, 16821, 865, 2282, 56, 426, 2841, 444, 447, {2848, 2855, 2862, 2870, 2880, 2889, 2896}, {2905, 2909, 2913, 2917, 2921, 2925, 2929}, {2933, 2941, 2950, 2151, 2956, 2960, 2965, 2171, 2178, 2970, 2196, 2978, 322}, {2214, 2218, 2987, 2226, 2956, 2230, 2234, 2238, 2242, 2991, 2250, 2995, 322}, 0, 0, 323, 325, {327,2999,1091,865},{2804,2804,3047,3061,3081,16821},{2833,2833,3096,1488,349,56},{2282,2282,3105,1480,417,2761}},
-	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 0, 323, 325, {327,3705,3015,865},{336,6304},{349,13388},{355,3105,13375}},
-	{832, 853, 2025, 417, 349, 426, 74, 444, 447, {3493, 3502, 3508, 3514, 3523, 3529, 3538}, {3545, 3550, 3555, 3560, 3565, 3570, 3575}, {3580, 3588, 3597, 3602, 3608, 3612, 3617, 3625, 3631, 3641, 1029, 3649, 322}, {3659, 3665, 3597, 3672, 3608, 3612, 3677, 3625, 3683, 1076, 1081, 3689, 322}, 0, 0, 323, 325, {1091,3695,3705,823,2025},{336,853,3476},{349},{355,417}},
-	{16834, 24, 1772, 1480, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {16172, 16175, 16178, 16181, 16184, 16187, 16190}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 0, 323, 325, {327,37,1772},{336,24},{349,56},{355,46,1480}},
+	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 1, 323, 325, {327,3705,3015,865},{336,6304},{349,13388},{355,3105,13375}},
+	{832, 853, 2025, 417, 349, 426, 74, 444, 447, {3493, 3502, 3508, 3514, 3523, 3529, 3538}, {3545, 3550, 3555, 3560, 3565, 3570, 3575}, {3580, 3588, 3597, 3602, 3608, 3612, 3617, 3625, 3631, 3641, 1029, 3649, 322}, {3659, 3665, 3597, 3672, 3608, 3612, 3677, 3625, 3683, 1076, 1081, 3689, 322}, 0, 1, 323, 325, {1091,3695,3705,823,2025},{336,853,3476},{349},{355,417}},
+	{16834, 24, 1772, 1480, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {16172, 16175, 16178, 16181, 16184, 16187, 16190}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 6, 323, 325, {327,37,1772},{336,24},{349,56},{355,46,1480}},
 	{16499, 5133, 16546, 1176, 16268, 16566, 16583, 1235, 1242, {1249, 1259, 1269, 1279, 1289, 1299, 1309}, {1319, 1323, 1327, 1331, 1335, 1339, 1343}, {1347, 1354, 1361, 1368, 1375, 1382, 1389, 1396, 1403, 1410, 1417, 1427, 322}, {4981, 4986, 4991, 4996, 5001, 5006, 5011, 5016, 5021, 5026, 5032, 5038, 322}, 0, 0, 323, 325, {327,16546},{336,5133},{349,16268},{355,1176}},
 	{16639, 853, 3695, 2282, 56, 426, 74, 16308, 16313, {2848, 2855, 2862, 2870, 2880, 2889, 2896}, {2905, 2909, 2913, 2917, 2921, 2925, 2929}, {2933, 2941, 2950, 2151, 2956, 2960, 2965, 2171, 2178, 2970, 2196, 2978, 322}, {2214, 2218, 2987, 2226, 2956, 2230, 2234, 2238, 2242, 2991, 2250, 2995, 322}, 0, 0, 323, 325, {327,2999,3705,3695},{2804,2804,3047,3061,3081,853},{2833,2833,3096,1488,349,56},{2282,2282,3105,1480,417,46}},
-	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 0, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,13388},{355,3105,13375}},
-	{3450, 3476, 865, 417, 349, 426, 74, 444, 447, {3493, 3502, 3508, 3514, 3523, 3529, 3538}, {3545, 3550, 3555, 3560, 3565, 3570, 3575}, {3580, 3588, 3597, 3602, 3608, 3612, 3617, 3625, 3631, 3641, 1029, 3649, 322}, {3659, 3665, 3597, 3672, 3608, 3612, 3677, 3625, 3683, 1076, 1081, 3689, 322}, 0, 0, 323, 325, {1091,3695,3705,865},{336,853,3476},{349},{355,417}},
-	{16834, 24, 1772, 1480, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {16172, 16175, 16178, 16181, 16184, 16187, 16190}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 0, 323, 325, {327,37,1772},{336,24},{349,56},{355,46,1480}},
+	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 1, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,13388},{355,3105,13375}},
+	{3450, 3476, 865, 417, 349, 426, 74, 444, 447, {3493, 3502, 3508, 3514, 3523, 3529, 3538}, {3545, 3550, 3555, 3560, 3565, 3570, 3575}, {3580, 3588, 3597, 3602, 3608, 3612, 3617, 3625, 3631, 3641, 1029, 3649, 322}, {3659, 3665, 3597, 3672, 3608, 3612, 3677, 3625, 3683, 1076, 1081, 3689, 322}, 0, 1, 323, 325, {1091,3695,3705,865},{336,853,3476},{349},{355,417}},
+	{16834, 24, 1772, 1480, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {16172, 16175, 16178, 16181, 16184, 16187, 16190}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 6, 323, 325, {327,37,1772},{336,24},{349,56},{355,46,1480}},
 	{832, 853, 865, 417, 349, 426, 74, 16308, 16313, {2848, 2855, 2862, 2870, 2880, 2889, 2896}, {2905, 2909, 2913, 2917, 2921, 2925, 2929}, {2933, 2941, 2950, 2151, 2956, 2960, 2965, 2171, 2178, 2970, 2196, 2978, 322}, {2214, 2218, 2987, 2226, 2956, 2230, 2234, 2238, 2242, 2991, 2250, 2995, 322}, 0, 0, 323, 325, {327,2999,865},{2804,2804,3047,3061,3081,853},{2833,2833,3096,1488,349},{2282,2282,3105,1480,417,355}},
-	{16274, 6304, 3015, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 0, 323, 325, {327,3705,3015,3006},{336,6304},{349,13388},{355,3105,13375}},
-	{16834, 24, 1772, 1480, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {87, 98, 113, 130, 147, 160, 173}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 0, 323, 325, {327,37,1772},{336,24},{349,56},{355,46,1480}},
+	{16274, 6304, 3015, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 1, 323, 325, {327,3705,3015,3006},{336,6304},{349,13388},{355,3105,13375}},
+	{16834, 24, 1772, 1480, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {87, 98, 113, 130, 147, 160, 173}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 6, 323, 325, {327,37,1772},{336,24},{349,56},{355,46,1480}},
 	{12414, 388, 4862, 3105, 56, 426, 436, 444, 447, {2848, 2855, 2862, 2870, 2880, 2889, 2896}, {2905, 2909, 2913, 2917, 2921, 2925, 2929}, {2933, 2941, 2950, 2151, 2956, 2960, 2965, 2171, 2178, 2970, 2196, 2978, 322}, {2214, 2218, 2987, 2226, 2956, 2230, 2234, 2238, 2242, 2991, 2250, 2995, 322}, 0, 0, 323, 325, {327,2999,4862},{2804,2804,3047,3061,3081,388},{2833,2833,3096,1488,349,56},{2282,2282,3105,1480,417,46}},
-	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 0, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,13388},{355,3105,13375}},
-	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {16172, 16175, 16178, 16181, 16184, 16187, 16190}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 0, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
-	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 0, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,13388},{355,3105,13375}},
-	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {87, 98, 113, 130, 147, 160, 173}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 0, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
-	{16274, 6304, 865, 3105, 1488, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 0, 323, 325, {327,3705,3015,865},{336,6304},{349,1488},{355,3105,1729}},
-	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {87, 98, 113, 130, 147, 160, 173}, {16855, 16879, 16888, 16897, 16908, 16917, 16930, 16939, 16944, 16955, 16977, 17001, 322}, {16855, 16879, 16888, 16897, 16908, 16917, 16930, 16939, 16944, 16955, 16977, 17001, 322}, 0, 0, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
-	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 0, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,13388},{355,3105,13375}},
-	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {87, 98, 113, 130, 147, 160, 173}, {16855, 16879, 16888, 16897, 17023, 16917, 16930, 16939, 16944, 16955, 16977, 17001, 322}, {16855, 16879, 16888, 16897, 17023, 16917, 16930, 16939, 16944, 16955, 16977, 17001, 322}, 0, 0, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
-	{17032, 17063, 865, 3105, 13388, 426, 436, 444, 447, {2848, 2855, 2862, 2870, 2880, 2889, 2896}, {2905, 2909, 2913, 2917, 2921, 2925, 2929}, {2933, 2941, 2950, 2151, 2956, 2960, 2965, 2171, 2178, 2970, 2196, 2978, 322}, {2214, 2218, 2987, 2226, 2956, 2230, 2234, 2238, 2242, 2991, 2250, 2995, 322}, 0, 0, 323, 325, {865,3026},{2804,2804,3047,3061,3081,388,17063},{2833,2833,3096,1488,349,13388},{3105,417}},
-	{16274, 6304, 865, 3105, 349, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 0, 323, 325, {327,3705,3015,1091,865},{336,6304},{349},{355,3105,1729}},
-	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {87, 98, 113, 130, 147, 160, 173}, {16855, 16879, 16888, 16897, 16908, 16917, 16930, 16939, 16944, 16955, 16977, 17001, 322}, {16855, 16879, 16888, 16897, 16908, 16917, 16930, 16939, 16944, 16955, 16977, 17001, 322}, 0, 0, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
+	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 1, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,13388},{355,3105,13375}},
+	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {16172, 16175, 16178, 16181, 16184, 16187, 16190}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 6, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
+	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 1, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,13388},{355,3105,13375}},
+	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {87, 98, 113, 130, 147, 160, 173}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 6, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
+	{16274, 6304, 865, 3105, 1488, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 1, 323, 325, {327,3705,3015,865},{336,6304},{349,1488},{355,3105,1729}},
+	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {87, 98, 113, 130, 147, 160, 173}, {16855, 16879, 16888, 16897, 16908, 16917, 16930, 16939, 16944, 16955, 16977, 17001, 322}, {16855, 16879, 16888, 16897, 16908, 16917, 16930, 16939, 16944, 16955, 16977, 17001, 322}, 0, 4, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
+	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 1, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,13388},{355,3105,13375}},
+	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {87, 98, 113, 130, 147, 160, 173}, {16855, 16879, 16888, 16897, 17023, 16917, 16930, 16939, 16944, 16955, 16977, 17001, 322}, {16855, 16879, 16888, 16897, 17023, 16917, 16930, 16939, 16944, 16955, 16977, 17001, 322}, 0, 6, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
+	{16274, 6304, 865, 3105, 349, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 1, 323, 325, {327,3705,3015,1091,865},{336,6304},{349},{355,3105,1729}},
+	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {87, 98, 113, 130, 147, 160, 173}, {16855, 16879, 16888, 16897, 16908, 16917, 16930, 16939, 16944, 16955, 16977, 17001, 322}, {16855, 16879, 16888, 16897, 16908, 16917, 16930, 16939, 16944, 16955, 16977, 17001, 322}, 0, 6, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
 	{2258, 388, 2824, 2282, 56, 426, 436, 444, 447, {2848, 2855, 2862, 2870, 2880, 2889, 2896}, {2905, 2909, 2913, 2917, 2921, 2925, 2929}, {2933, 2941, 2950, 2151, 2956, 2960, 2965, 2171, 2178, 2970, 2196, 2978, 322}, {2214, 2218, 2987, 2226, 2956, 2230, 2234, 2238, 2242, 2991, 2250, 2995, 322}, 0, 0, 323, 325, {327,2999,37,2824},{2804,2804,3047,3061,3081,388},{2833,2833,3096,1488,349,56},{2282,2282,3105,1480,417,46}},
-	{16444, 6304, 865, 1480, 1488, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 0, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,1488},{355,3105,1729,1480}},
-	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {16172, 16175, 16178, 16181, 16184, 16187, 16190}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 0, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
+	{16444, 6304, 865, 1480, 1488, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 1, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,1488},{355,3105,1729,1480}},
+	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {16172, 16175, 16178, 16181, 16184, 16187, 16190}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 6, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
 	{16797, 16821, 2824, 2282, 56, 426, 2841, 444, 447, {2848, 2855, 2862, 2870, 2880, 2889, 2896}, {2905, 2909, 2913, 2917, 2921, 2925, 2929}, {2933, 2941, 2950, 2151, 2956, 2960, 2965, 2171, 2178, 2970, 2196, 2978, 322}, {2214, 2218, 2987, 2226, 2956, 2230, 2234, 2238, 2242, 2991, 2250, 2995, 322}, 0, 0, 323, 325, {327,2999,2824},{2804,2804,3047,3061,3081,16821},{2833,2833,3096,1488,349,56},{2282,2282,3105,1480,417,2761}},
-	{16444, 6304, 1772, 1480, 1488, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 0, 323, 325, {327,3705,3015,1994,1772},{336,6304},{349,1488},{355,3105,1729,1480}},
-	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {16172, 16175, 16178, 16181, 16184, 16187, 16190}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 0, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
-	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 0, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,13388},{355,3105,13375}},
-	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {16172, 16175, 16178, 16181, 16184, 16187, 16190}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 0, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
-	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 0, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,13388},{355,3105,13375}},
-	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {87, 98, 113, 130, 147, 160, 173}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 0, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
-	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 0, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,13388},{355,3105,13375}},
-	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 0, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,13388},{355,3105,13375}},
-	{17082, 17117, 865, 3105, 13388, 6326, 17140, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 0, 323, 325, {327,3705,3015,1091,865},{336,6304,17117},{349,13388},{355,3105,13375}},
-	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 0, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,13388},{355,3105,13375}},
-	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 0, 323, 325, {327,3705,3015,3006,865},{336,6304},{349,13388},{355,3105,13375}},
+	{16444, 6304, 1772, 1480, 1488, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 1, 323, 325, {327,3705,3015,1994,1772},{336,6304},{349,1488},{355,3105,1729,1480}},
+	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {16172, 16175, 16178, 16181, 16184, 16187, 16190}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 6, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
+	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 1, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,13388},{355,3105,13375}},
+	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {16172, 16175, 16178, 16181, 16184, 16187, 16190}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 6, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
+	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 1, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,13388},{355,3105,13375}},
+	{16474, 24, 865, 3105, 56, 63, 74, 81, 84, {87, 98, 113, 130, 147, 160, 173}, {87, 98, 113, 130, 147, 160, 173}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, {184, 195, 208, 217, 228, 237, 248, 259, 270, 283, 296, 309, 322}, 0, 6, 323, 325, {327,37,865},{336,24},{349,56},{355,46,3105}},
+	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 1, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,13388},{355,3105,13375}},
+	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 1, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,13388},{355,3105,13375}},
+	{17032, 17067, 865, 3105, 13388, 6326, 17090, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 1, 323, 325, {327,3705,3015,1091,865},{336,6304,17067},{349,13388},{355,3105,13375}},
+	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 1, 323, 325, {327,3705,3015,1091,865},{336,6304},{349,13388},{355,3105,13375}},
+	{16274, 6304, 865, 3105, 13388, 6326, 6331, 16308, 16313, {6343, 16318, 16324, 16331, 16342, 16349, 6416}, {4691, 4695, 1958, 16357, 16362, 16366, 6444}, {16370, 16376, 4732, 983, 16384, 16389, 16395, 4766, 16401, 1021, 16412, 16422, 322}, {16432, 1954, 1958, 6530, 16436, 1966, 1970, 4816, 1978, 16440, 1986, 4828, 322}, 0, 1, 323, 325, {327,3705,3015,3006,865},{336,6304},{349,13388},{355,3105,13375}},
 };
 
 
 static const NumberFormatEntry number_format_entries [] = {
-	{17153, 17156, 17153, 17156, 17153, 17156, 17159, 17169, 17172, 17176, 17180, 17185, 17189, 17191, 1, 0, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17195, 17193, 17195, 17193, 17195, 17198, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17208, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 0, 0, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17212, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17195, 17193, 17195, 17193, 17195, 17239, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17243, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 12, 2, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17208, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17208, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 1, 1, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17246, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 0, 0, 0, 0, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17195, 17193, 17195, 17193, 17195, 17208, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17195, 17193, 17195, 17193, 17195, 17208, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 0, 0, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17248, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17195, 17193, 17195, 17193, 17195, 17252, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17255, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17208, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 9, 2, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17259, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 1, 0, 1, 1, 1, 0, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17261, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 0, 0, 0, 0, 1, 0, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17208, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 11, 2, 0, 0, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17195, 17193, 17195, 17193, 17195, 17243, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 0, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17195, 17193, 17195, 17193, 17195, 17265, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17269, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17273, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17195, 17193, 17195, 17193, 17195, 17277, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 5, 1, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17281, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 9, 2, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17195, 17193, 17195, 17193, 17195, 10514, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17284, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17195, 17193, 17195, 17193, 17195, 17243, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17288, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 2, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17292, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17295, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 0, 0, 1, 1, 1, 0, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17195, 17193, 17195, 17193, 17195, 17298, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17195, 17193, 17195, 17193, 17195, 0, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 1, 0, 1, 1, 1, 0, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17306, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 9, 2, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17195, 17193, 17195, 17193, 17195, 17243, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17195, 17193, 17195, 17193, 17195, 17310, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17313, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {2, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17153, 17156, 17153, 17156, 17153, 17156, 17316, 17169, 17172, 17176, 17180, 17185, 17189, 17191, 0, 3, 2, 2, 1, 0, 2, 2, {5, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17320, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 0, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17208, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17323, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 9, 2, 1, 1, 0, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 9988, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17243, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 12, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17327, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 9, 2, 1, 1, 1, 2, 2, 2, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17334, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17338, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 9, 2, 1, 1, 1, 2, 2, 2, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17345, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 9, 2, 1, 1, 1, 2, 2, 2, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17352, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 9, 2, 1, 1, 1, 2, 2, 2, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17327, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 9, 2, 1, 1, 1, 2, 2, 2, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17327, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 9, 2, 1, 1, 1, 2, 2, 2, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17208, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17327, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 9, 2, 1, 1, 1, 2, 2, 2, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}},
-	{17153, 17156, 17153, 17156, 17153, 17156, 17360, 17169, 17172, 17176, 17180, 17185, 17189, 17191, 11, 2, 1, 1, 3, 3, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17370, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17374, 17206, 17374, 17206, 17374, 17376, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 2, 2, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17381, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17246, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17208, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17374, 17206, 17374, 17206, 17374, 17376, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 2, 2, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17208, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17195, 17193, 17195, 17193, 17195, 17243, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 0, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17208, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17195, 17193, 17195, 17193, 17195, 17208, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17153, 17156, 17153, 17156, 17153, 17156, 17384, 17169, 17172, 17176, 17180, 17185, 17189, 17191, 11, 2, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17394, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17208, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 9, 2, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17246, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17208, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17195, 17193, 17195, 17193, 17195, 17246, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 0, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17153, 17156, 17153, 17156, 17153, 17156, 17398, 17169, 17172, 17176, 17180, 17185, 17189, 17191, 11, 2, 1, 1, 3, 3, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17408, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17208, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17246, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17411, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17374, 17206, 17374, 17206, 17374, 17413, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 2, 2, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17153, 17156, 17153, 17156, 17153, 17156, 17418, 17169, 17172, 17176, 17180, 17185, 17189, 17191, 11, 2, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 4211, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17246, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17428, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17208, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17153, 17156, 17153, 17156, 17153, 17156, 17432, 17169, 17172, 17176, 17180, 17185, 17189, 17191, 11, 2, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17208, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17442, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17153, 17156, 17153, 17156, 17153, 17156, 17445, 17169, 17172, 17176, 17180, 17185, 17189, 17191, 1, 0, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 9988, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17455, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17153, 17156, 17153, 17156, 17153, 17156, 17459, 17169, 17172, 17176, 17180, 17185, 17189, 17191, 11, 2, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17469, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 12, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17153, 17156, 17153, 17156, 17153, 17156, 17472, 17169, 17172, 17176, 17180, 17185, 17189, 17191, 1, 0, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17246, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17153, 17156, 17153, 17156, 17153, 17156, 17482, 17169, 17172, 17176, 17180, 17185, 17189, 17191, 1, 0, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17492, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 2, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17153, 17156, 17153, 17156, 17153, 17156, 17495, 17169, 17172, 17176, 17180, 17185, 17189, 17191, 11, 2, 1, 1, 3, 3, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17505, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17246, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17153, 17156, 17153, 17156, 17153, 17156, 17509, 17169, 17172, 17176, 17180, 17185, 17189, 17191, 11, 2, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17519, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17522, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 2, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17153, 17156, 17153, 17156, 17153, 17156, 17526, 17169, 17172, 17176, 17180, 17185, 17189, 17191, 11, 2, 1, 1, 3, 3, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17536, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17246, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 2, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17153, 17156, 17153, 17156, 17153, 17156, 17540, 17169, 17172, 17176, 17180, 17185, 17189, 17191, 11, 2, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17550, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 0, 2, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17153, 17156, 17153, 17156, 17153, 17156, 17554, 17169, 17172, 17176, 17180, 17185, 17189, 17191, 11, 2, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17564, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 12, 2, 1, 1, 1, 0, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17153, 17156, 17153, 17156, 17153, 17156, 17567, 17169, 17172, 17176, 17180, 17185, 17189, 17191, 1, 0, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17193, 17206, 17193, 17206, 17193, 17206, 17577, 17204, 17172, 17176, 17180, 17185, 17189, 17191, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17580, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17584, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17587, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
-	{17206, 17193, 17206, 17193, 17206, 17193, 17246, 17204, 17216, 17176, 17220, 17230, 17189, 17191, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17103, 17106, 17103, 17106, 17103, 17106, 17109, 17119, 17122, 17126, 17130, 17135, 17139, 17141, 1, 0, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17145, 17143, 17145, 17143, 17145, 17148, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17158, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 0, 0, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17162, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17145, 17143, 17145, 17143, 17145, 17189, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17193, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 12, 2, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17158, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17158, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 1, 1, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17196, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 0, 0, 0, 0, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17145, 17143, 17145, 17143, 17145, 17158, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17145, 17143, 17145, 17143, 17145, 17158, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 0, 0, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17198, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17145, 17143, 17145, 17143, 17145, 17202, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17205, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17158, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 9, 2, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17209, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 1, 0, 1, 1, 1, 0, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17211, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 0, 0, 0, 0, 1, 0, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17158, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 11, 2, 0, 0, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17145, 17143, 17145, 17143, 17145, 17193, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 0, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17145, 17143, 17145, 17143, 17145, 17215, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17219, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17223, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17145, 17143, 17145, 17143, 17145, 17227, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 5, 1, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17231, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 9, 2, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17145, 17143, 17145, 17143, 17145, 10514, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17234, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17145, 17143, 17145, 17143, 17145, 17193, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17238, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 2, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17242, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17245, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 0, 0, 1, 1, 1, 0, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17145, 17143, 17145, 17143, 17145, 17248, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17145, 17143, 17145, 17143, 17145, 0, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 1, 0, 1, 1, 1, 0, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17256, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 9, 2, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17145, 17143, 17145, 17143, 17145, 17193, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17145, 17143, 17145, 17143, 17145, 17260, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17263, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {2, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17103, 17106, 17103, 17106, 17103, 17106, 17266, 17119, 17122, 17126, 17130, 17135, 17139, 17141, 0, 3, 2, 2, 1, 0, 2, 2, {5, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17270, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 0, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17158, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17273, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 9, 2, 1, 1, 0, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 9988, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17193, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 12, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17277, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 9, 2, 1, 1, 1, 2, 2, 2, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17284, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17288, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 9, 2, 1, 1, 1, 2, 2, 2, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17295, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 9, 2, 1, 1, 1, 2, 2, 2, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17302, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 9, 2, 1, 1, 1, 2, 2, 2, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17277, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 9, 2, 1, 1, 1, 2, 2, 2, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17277, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 9, 2, 1, 1, 1, 2, 2, 2, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17158, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17277, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 9, 2, 1, 1, 1, 2, 2, 2, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}, {2, 2, -1, -1, -1}},
+	{17103, 17106, 17103, 17106, 17103, 17106, 17310, 17119, 17122, 17126, 17130, 17135, 17139, 17141, 11, 2, 1, 1, 3, 3, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17320, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17324, 17156, 17324, 17156, 17324, 17326, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 2, 2, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17331, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17196, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17158, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17324, 17156, 17324, 17156, 17324, 17326, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 2, 2, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17158, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17145, 17143, 17145, 17143, 17145, 17193, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 0, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17158, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17145, 17143, 17145, 17143, 17145, 17158, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17103, 17106, 17103, 17106, 17103, 17106, 17334, 17119, 17122, 17126, 17130, 17135, 17139, 17141, 11, 2, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17344, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17158, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 9, 2, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17196, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17158, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17145, 17143, 17145, 17143, 17145, 17196, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 0, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17103, 17106, 17103, 17106, 17103, 17106, 17348, 17119, 17122, 17126, 17130, 17135, 17139, 17141, 11, 2, 1, 1, 3, 3, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17358, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17158, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17196, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17361, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17324, 17156, 17324, 17156, 17324, 17363, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 2, 2, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17103, 17106, 17103, 17106, 17103, 17106, 17368, 17119, 17122, 17126, 17130, 17135, 17139, 17141, 11, 2, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 4211, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17196, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17378, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17158, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 8, 3, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17103, 17106, 17103, 17106, 17103, 17106, 17382, 17119, 17122, 17126, 17130, 17135, 17139, 17141, 11, 2, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17158, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17392, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17103, 17106, 17103, 17106, 17103, 17106, 17395, 17119, 17122, 17126, 17130, 17135, 17139, 17141, 1, 0, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 9988, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17405, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17103, 17106, 17103, 17106, 17103, 17106, 17409, 17119, 17122, 17126, 17130, 17135, 17139, 17141, 11, 2, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17419, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 12, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17103, 17106, 17103, 17106, 17103, 17106, 17422, 17119, 17122, 17126, 17130, 17135, 17139, 17141, 1, 0, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17196, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17103, 17106, 17103, 17106, 17103, 17106, 17432, 17119, 17122, 17126, 17130, 17135, 17139, 17141, 1, 0, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17442, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 2, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17103, 17106, 17103, 17106, 17103, 17106, 17445, 17119, 17122, 17126, 17130, 17135, 17139, 17141, 11, 2, 1, 1, 3, 3, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17196, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17103, 17106, 17103, 17106, 17103, 17106, 17455, 17119, 17122, 17126, 17130, 17135, 17139, 17141, 11, 2, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17465, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 1, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17468, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 2, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17103, 17106, 17103, 17106, 17103, 17106, 17472, 17119, 17122, 17126, 17130, 17135, 17139, 17141, 11, 2, 1, 1, 3, 3, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17482, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17196, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 2, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17103, 17106, 17103, 17106, 17103, 17106, 17486, 17119, 17122, 17126, 17130, 17135, 17139, 17141, 11, 2, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17496, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 0, 2, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17103, 17106, 17103, 17106, 17103, 17106, 17500, 17119, 17122, 17126, 17130, 17135, 17139, 17141, 11, 2, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17510, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 12, 2, 1, 1, 1, 0, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17103, 17106, 17103, 17106, 17103, 17106, 17513, 17119, 17122, 17126, 17130, 17135, 17139, 17141, 1, 0, 1, 1, 3, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17143, 17156, 17143, 17156, 17143, 17156, 17523, 17154, 17122, 17126, 17130, 17135, 17139, 17141, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17526, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17530, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17533, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
+	{17156, 17143, 17156, 17143, 17156, 17143, 17196, 17154, 17166, 17126, 17170, 17180, 17139, 17141, 0, 0, 1, 1, 1, 2, 2, 2, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}, {3, -1, -1, -1, -1}},
 };
 
 
 static const CultureInfoEntry culture_entries [] = {
-	{0x0001, 0x007F, 0x0401, -1,17590, 17593, 17593, 17593, 17600, 17615, 17619, 17590, 0, {0, 0, 0, 0, 0}, -1, -1, { 1256, 20420, 10004, 720, ';' }},
-	{0x0002, 0x007F, 0x0402, -1,17623, 17626, 17626, 17626, 17636, 17655, 17659, 17623, 0, {0, 0, 0, 0, 0}, -1, -1, { 1251, 20420, 10007, 866, ';' }},
-	{0x0003, 0x007F, 0x0403, -1,17663, 17666, 17666, 17666, 17674, 17682, 17686, 17663, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 500, 10000, 850, ';' }},
-	{0x0004, 0x007F, 0x0000, -1,17690, 17697, 17697, 17697, 17705, 17712, 17716, 17720, 0, {0, 0, 0, 0, 0}, -1, -1, { 936, 500, 10008, 936, ',' }},
-	{0x0005, 0x007F, 0x0405, -1,17723, 17726, 17726, 17726, 17732, 17742, 17746, 17723, 0, {0, 0, 0, 0, 0}, -1, -1, { 1250, 500, 10029, 852, ';' }},
-	{0x0006, 0x007F, 0x0406, -1,17750, 17753, 17753, 17753, 17760, 17766, 17770, 17750, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 20277, 10000, 850, ';' }},
-	{0x0007, 0x007F, 0x0407, -1,17774, 17777, 17777, 17777, 17784, 17792, 17796, 17774, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 20273, 10000, 850, ';' }},
-	{0x0008, 0x007F, 0x0408, -1,17800, 17803, 17803, 17803, 17809, 17826, 17830, 17800, 0, {0, 0, 0, 0, 0}, -1, -1, { 1253, 20273, 10006, 737, ';' }},
-	{0x0009, 0x007F, 0x0409, -1,17834, 17837, 17837, 17837, 17837, 17845, 17849, 17834, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 37, 10000, 437, ',' }},
-	{0x000A, 0x007F, 0x0C0A, -1,17853, 17856, 17856, 17856, 17864, 17873, 17877, 17853, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 20284, 10000, 850, ';' }},
-	{0x000B, 0x007F, 0x040B, -1,17881, 17884, 17884, 17884, 17892, 17898, 17902, 17881, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 20278, 10000, 850, ';' }},
-	{0x000C, 0x007F, 0x040C, -1,6053, 17906, 17906, 17906, 17913, 17923, 17927, 6053, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 20297, 10000, 850, ';' }},
-	{0x000D, 0x007F, 0x040D, -1,17931, 17934, 17934, 17934, 17941, 17952, 17956, 17931, 0, {0, 0, 0, 0, 0}, -1, -1, { 1255, 500, 10005, 862, ',' }},
-	{0x000E, 0x007F, 0x040E, -1,17960, 17963, 17963, 17963, 17973, 17980, 17984, 17960, 0, {0, 0, 0, 0, 0}, -1, -1, { 1250, 500, 10029, 852, ';' }},
-	{0x000F, 0x007F, 0x040F, -1,17988, 17991, 17991, 17991, 18001, 18011, 18015, 17988, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 20871, 10079, 850, ';' }},
-	{0x0010, 0x007F, 0x0410, -1,18019, 18022, 18022, 18022, 18030, 18039, 18043, 18019, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 20280, 10000, 850, ';' }},
-	{0x0011, 0x007F, 0x0411, -1,18047, 18050, 18050, 18050, 18059, 18069, 18073, 18047, 0, {0, 0, 0, 0, 0}, -1, -1, { 932, 20290, 10001, 932, ',' }},
-	{0x0012, 0x007F, 0x0412, -1,18077, 18080, 18080, 18080, 18087, 18097, 18101, 18077, 0, {0, 0, 0, 0, 0}, -1, -1, { 949, 20833, 10003, 949, ',' }},
-	{0x0013, 0x007F, 0x0413, -1,18105, 18108, 18108, 18108, 18114, 18125, 18129, 18105, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 500, 10000, 850, ';' }},
-	{0x0014, 0x007F, 0x0414, -1,18133, 18136, 18136, 18136, 18146, 18152, 18156, 18133, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 20277, 10000, 850, ';' }},
-	{0x0015, 0x007F, 0x0415, -1,18160, 18163, 18163, 18163, 18170, 18177, 18181, 18160, 0, {0, 0, 0, 0, 0}, -1, -1, { 1250, 20880, 10029, 852, ';' }},
-	{0x0016, 0x007F, 0x0416, -1,18185, 18188, 18188, 18188, 18199, 18210, 18214, 18185, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 500, 10000, 850, ';' }},
-	{0x0018, 0x007F, 0x0418, -1,18218, 18221, 18221, 18221, 18230, 18239, 18243, 18218, 0, {0, 0, 0, 0, 0}, -1, -1, { 1250, 20880, 10029, 852, ';' }},
-	{0x0019, 0x007F, 0x0419, -1,18247, 18250, 18250, 18250, 18258, 18273, 18277, 18247, 0, {0, 0, 0, 0, 0}, -1, -1, { 1251, 20880, 10007, 866, ';' }},
-	{0x001A, 0x007F, 0x041A, -1,18281, 18284, 18284, 18284, 18293, 18302, 18306, 18281, 0, {0, 0, 0, 0, 0}, -1, -1, { 1250, 500, 10082, 852, ';' }},
-	{0x001B, 0x007F, 0x041B, -1,18310, 18313, 18313, 18313, 18320, 18331, 18335, 18310, 0, {0, 0, 0, 0, 0}, -1, -1, { 1250, 20880, 10029, 852, ';' }},
-	{0x001C, 0x007F, 0x041C, -1,18339, 18342, 18342, 18342, 18351, 18358, 18362, 18339, 0, {0, 0, 0, 0, 0}, -1, -1, { 1250, 20880, 10029, 852, ';' }},
-	{0x001D, 0x007F, 0x041D, -1,18366, 18369, 18369, 18369, 18377, 18385, 18389, 18366, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 20278, 10000, 850, ';' }},
-	{0x001E, 0x007F, 0x041E, -1,18393, 18396, 18396, 18396, 18401, 18411, 18415, 18393, 0, {0, 0, 0, 0, 0}, -1, -1, { 874, 20838, 10021, 874, ',' }},
-	{0x001F, 0x007F, 0x041F, -1,18419, 18422, 18422, 18422, 18430, 18439, 18443, 18419, 0, {0, 0, 0, 0, 0}, -1, -1, { 1254, 20905, 10081, 857, ';' }},
-	{0x0021, 0x007F, 0x0421, -1,18447, 18450, 18450, 18450, 18461, 18478, 18482, 18447, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 500, 10000, 850, ';' }},
-	{0x0022, 0x007F, 0x0422, -1,18486, 18489, 18489, 18489, 18499, 18520, 18524, 18486, 0, {0, 0, 0, 0, 0}, -1, -1, { 1251, 500, 10017, 866, ';' }},
-	{0x0023, 0x007F, 0x0423, -1,18528, 18531, 18531, 18531, 18542, 18561, 18565, 18528, 0, {0, 0, 0, 0, 0}, -1, -1, { 1251, 500, 10007, 866, ';' }},
-	{0x0024, 0x007F, 0x0424, -1,18569, 18572, 18572, 18572, 18582, 18596, 18600, 18569, 0, {0, 0, 0, 0, 0}, -1, -1, { 1250, 20880, 10029, 852, ';' }},
-	{0x0025, 0x007F, 0x0425, -1,18604, 18607, 18607, 18607, 18616, 18622, 18626, 18604, 0, {0, 0, 0, 0, 0}, -1, -1, { 1257, 500, 10029, 775, ';' }},
-	{0x0026, 0x007F, 0x0426, -1,18630, 18633, 18633, 18633, 18641, 18651, 18655, 18630, 0, {0, 0, 0, 0, 0}, -1, -1, { 1257, 500, 10029, 775, ';' }},
-	{0x0027, 0x007F, 0x0427, -1,18659, 18662, 18662, 18662, 18673, 18683, 18687, 18659, 0, {0, 0, 0, 0, 0}, -1, -1, { 1257, 500, 10029, 775, ';' }},
-	{0x0029, 0x007F, 0x0429, -1,18691, 18694, 18694, 18694, 18702, 18713, 18717, 18691, 0, {0, 0, 0, 0, 0}, -1, -1, { 1256, 20420, 10004, 720, ';' }},
-	{0x002A, 0x007F, 0x042A, -1,18721, 18724, 18724, 18724, 18735, 18750, 16366, 18721, 0, {0, 0, 0, 0, 0}, -1, -1, { 1258, 500, 10000, 1258, ',' }},
-	{0x002B, 0x007F, 0x042B, -1,18754, 18757, 18757, 18757, 18766, 18781, 18785, 18754, 0, {0, 0, 0, 0, 0}, -1, -1, { 0, 500, 2, 1, ',' }},
-	{0x002D, 0x007F, 0x042D, -1,18789, 18792, 18792, 18792, 18799, 18807, 18811, 18789, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 500, 10000, 850, ';' }},
-	{0x002F, 0x007F, 0x042F, -1,18815, 18818, 18818, 18818, 18829, 18850, 18854, 18815, 0, {0, 0, 0, 0, 0}, -1, -1, { 1251, 500, 10007, 866, ';' }},
-	{0x0036, 0x007F, 0x0436, -1,18858, 18861, 18861, 18861, 18871, 18882, 18886, 18858, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 500, 10000, 850, ',' }},
-	{0x0038, 0x007F, 0x0438, -1,18890, 18893, 18893, 18893, 18901, 18911, 18915, 18890, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 20277, 10079, 850, ';' }},
-	{0x0039, 0x007F, 0x0439, -1,18919, 18922, 18922, 18922, 18928, 18944, 18948, 18919, 0, {0, 0, 0, 0, 0}, -1, -1, { 0, 500, 2, 1, ',' }},
-	{0x0041, 0x007F, 0x0441, -1,18952, 18955, 18955, 18955, 18963, 18973, 18977, 18952, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 500, 10000, 437, ',' }},
-	{0x0047, 0x007F, 0x0447, -1,18981, 18984, 18984, 18984, 18993, 19015, 19019, 18981, 0, {0, 0, 0, 0, 0}, -1, -1, { 0, 500, 2, 1, ',' }},
-	{0x0049, 0x007F, 0x0449, -1,19023, 19026, 19026, 19026, 19032, 19048, 19052, 19023, 0, {0, 0, 0, 0, 0}, -1, -1, { 0, 500, 2, 1, ',' }},
-	{0x004A, 0x007F, 0x044A, -1,19056, 19059, 19059, 19059, 19066, 19085, 19089, 19056, 0, {0, 0, 0, 0, 0}, -1, -1, { 0, 500, 2, 1, ',' }},
-	{0x004B, 0x007F, 0x044B, -1,19093, 19096, 19096, 19096, 19104, 19120, 19124, 19093, 0, {0, 0, 0, 0, 0}, -1, -1, { 0, 500, 2, 1, ',' }},
-	{0x004E, 0x007F, 0x044E, -1,19128, 19131, 19131, 19131, 19139, 19155, 1958, 19128, 0, {0, 0, 0, 0, 0}, -1, -1, { 0, 500, 2, 1, ',' }},
-	{0x0056, 0x007F, 0x0456, -1,19159, 19162, 19162, 19162, 19171, 19178, 19182, 19159, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 500, 10000, 850, ',' }},
-	{0x0057, 0x007F, 0x0457, -1,19186, 19190, 19190, 19190, 19198, 19217, 19186, 18919, 0, {0, 0, 0, 0, 0}, -1, -1, { 0, 500, 2, 1, ',' }},
-	{0x0401, 0x0001, 0x0401, 174,19221, 19227, 19227, 19227, 19249, 17615, 17619, 17590, 11091, {16777216, 0, 0, 0, 0}, 0, 0, { 1256, 20420, 10004, 720, ';' }},
-	{0x0402, 0x0002, 0x0402, 19,19298, 19304, 19304, 19304, 19325, 17655, 17659, 17623, 19363, {0, 0, 0, 0, 0}, 1, 1, { 1251, 20420, 10007, 866, ';' }},
-	{0x0403, 0x0003, 0x0403, 61,19366, 19372, 19372, 19372, 19388, 17682, 17686, 17663, 19406, {0, 0, 0, 0, 0}, 2, 2, { 1252, 500, 10000, 850, ';' }},
-	{0x0404, 0x7C04, 0x0404, 207,19409, 19415, 19415, 19415, 19432, 19448, 17716, 17720, 19452, {0, 0, 0, 0, 0}, 3, 3, { 950, 500, 10002, 950, ',' }},
-	{0x0405, 0x0005, 0x0405, 49,19455, 19461, 19461, 19461, 19484, 17742, 17746, 17723, 19514, {0, 0, 0, 0, 0}, 4, 4, { 1250, 500, 10029, 852, ';' }},
-	{0x0406, 0x0006, 0x0406, 52,19517, 19523, 19523, 19523, 19540, 17766, 17770, 17750, 19556, {0, 0, 0, 0, 0}, 5, 5, { 1252, 20277, 10000, 850, ';' }},
-	{0x0407, 0x0007, 0x0407, 50,19559, 19565, 19565, 19565, 19582, 17792, 17796, 17774, 4135, {0, 0, 0, 0, 0}, 6, 6, { 1252, 20273, 10000, 850, ';' }},
-	{0x0408, 0x0008, 0x0408, 81,19604, 19610, 19610, 19610, 19625, 17826, 17830, 17800, 19657, {0, 0, 0, 0, 0}, 7, 7, { 1253, 20273, 10006, 737, ';' }},
-	{0x0409, 0x0009, 0x0409, 212,19660, 19666, 19666, 19666, 19666, 17845, 17849, 17834, 19690, {0, 0, 0, 0, 0}, 8, 8, { 1252, 37, 10000, 437, ',' }},
-	{0x040B, 0x000B, 0x040B, 63,19693, 19699, 19699, 19699, 19717, 17898, 17902, 17881, 19731, {0, 0, 0, 0, 0}, 9, 9, { 1252, 20278, 10000, 850, ';' }},
-	{0x040C, 0x000C, 0x040C, 68,19734, 19740, 19740, 19740, 19756, 17923, 17927, 6053, 19775, {0, 0, 0, 0, 0}, 10, 10, { 1252, 20297, 10000, 850, ';' }},
-	{0x040D, 0x000D, 0x040D, 92,19778, 19784, 19784, 19784, 19800, 17952, 17956, 17931, 19824, {0, 0, 0, 0, 0}, 11, 11, { 1255, 500, 10005, 862, ',' }},
-	{0x040E, 0x000E, 0x040E, 89,19827, 19833, 19833, 19833, 19853, 17980, 17984, 17960, 19876, {0, 0, 0, 0, 0}, 12, 12, { 1250, 500, 10029, 852, ';' }},
-	{0x040F, 0x000F, 0x040F, 97,19879, 19885, 19885, 19885, 19905, 18011, 18015, 17988, 19925, {0, 0, 0, 0, 0}, 13, 13, { 1252, 20871, 10079, 850, ';' }},
-	{0x0410, 0x0010, 0x0410, 98,19928, 19934, 19934, 19934, 19950, 18039, 18043, 18019, 19968, {0, 0, 0, 0, 0}, 14, 14, { 1252, 20280, 10000, 850, ';' }},
-	{0x0411, 0x0011, 0x0411, 101,19971, 19977, 19977, 19977, 19994, 18069, 18073, 18047, 20013, {0, 0, 0, 0, 0}, 15, 15, { 932, 20290, 10001, 932, ',' }},
-	{0x0412, 0x0012, 0x0412, 109,20016, 20022, 20022, 20022, 20043, 18097, 18101, 18077, 20068, {0, 0, 0, 0, 0}, 16, 16, { 949, 20833, 10003, 949, ',' }},
-	{0x0413, 0x0013, 0x0413, 149,20071, 20077, 20077, 20077, 20097, 18125, 18129, 18105, 20120, {0, 0, 0, 0, 0}, 17, 17, { 1252, 500, 10000, 850, ';' }},
-	{0x0414, 0x0014, 0x0414, 150,20123, 20129, 20155, 20155, 20182, 18152, 20204, 20208, 20211, {0, 0, 0, 0, 0}, 18, 18, { 1252, 20277, 10000, 850, ';' }},
-	{0x0415, 0x0015, 0x0415, 162,20214, 20220, 20220, 20220, 20236, 18177, 18181, 18160, 20252, {0, 0, 0, 0, 0}, 19, 19, { 1250, 20880, 10029, 852, ';' }},
-	{0x0416, 0x0016, 0x0416, 26,20255, 20261, 20261, 20261, 20281, 18210, 18214, 18185, 20301, {0, 0, 0, 0, 0}, 20, 20, { 1252, 500, 10000, 850, ';' }},
-	{0x0418, 0x0018, 0x0418, 171,20304, 20310, 20310, 20310, 20329, 18239, 18243, 18218, 20349, {0, 0, 0, 0, 0}, 21, 21, { 1250, 20880, 10029, 852, ';' }},
-	{0x0419, 0x0019, 0x0419, 172,20352, 20358, 20358, 20358, 20375, 18273, 18277, 18247, 20405, {0, 0, 0, 0, 0}, 22, 22, { 1251, 20880, 10007, 866, ';' }},
-	{0x041A, 0x001A, 0x041A, 88,20408, 20414, 20414, 20414, 20433, 18302, 18306, 18281, 20453, {0, 0, 0, 0, 0}, 23, 23, { 1250, 500, 10082, 852, ';' }},
-	{0x041B, 0x001B, 0x041B, 183,20456, 20462, 20462, 20462, 20480, 18331, 18335, 18310, 20514, {0, 0, 0, 0, 0}, 24, 24, { 1250, 20880, 10029, 852, ';' }},
-	{0x041C, 0x001C, 0x041C, 4,20517, 20523, 20523, 20523, 20542, 18358, 18362, 18339, 20562, {0, 0, 0, 0, 0}, 25, 25, { 1250, 20880, 10029, 852, ';' }},
-	{0x041D, 0x001D, 0x041D, 178,20565, 20571, 20571, 20571, 20588, 18385, 18389, 18366, 20606, {0, 0, 0, 0, 0}, 26, 26, { 1252, 20278, 10000, 850, ';' }},
-	{0x041E, 0x001E, 0x041E, 197,20609, 20615, 20615, 20615, 20631, 18411, 18415, 18393, 20671, {0, 0, 0, 0, 0}, 27, 27, { 874, 20838, 10021, 874, ',' }},
-	{0x041F, 0x001F, 0x041F, 204,20674, 20680, 20680, 20680, 20697, 18439, 18443, 18419, 20717, {0, 0, 0, 0, 0}, 28, 28, { 1254, 20905, 10081, 857, ';' }},
-	{0x0421, 0x0021, 0x0421, 90,20720, 20726, 20726, 20726, 20749, 18478, 18482, 18447, 20778, {0, 0, 0, 0, 0}, 29, 29, { 1252, 500, 10000, 850, ';' }},
-	{0x0422, 0x0022, 0x0422, 209,20781, 20787, 20787, 20787, 20807, 18520, 18524, 18486, 20845, {0, 0, 0, 0, 0}, 30, 30, { 1251, 500, 10017, 866, ';' }},
-	{0x0423, 0x0023, 0x0423, 30,20848, 20854, 20854, 20854, 20875, 18561, 18565, 18528, 20913, {0, 0, 0, 0, 0}, 31, 31, { 1251, 500, 10007, 866, ';' }},
-	{0x0424, 0x0024, 0x0424, 181,20916, 20922, 20922, 20922, 20943, 18596, 18600, 18569, 20969, {0, 0, 0, 0, 0}, 32, 32, { 1250, 20880, 10029, 852, ';' }},
-	{0x0425, 0x0025, 0x0425, 57,20972, 20978, 20978, 20978, 20997, 18622, 18626, 18604, 21011, {0, 0, 0, 0, 0}, 33, 33, { 1257, 500, 10029, 775, ';' }},
-	{0x0426, 0x0026, 0x0426, 121,21014, 21020, 21020, 21020, 21037, 18651, 18655, 18630, 21057, {0, 0, 0, 0, 0}, 34, 34, { 1257, 500, 10029, 775, ';' }},
-	{0x0427, 0x0027, 0x0427, 119,21060, 21066, 21066, 21066, 21089, 18683, 18687, 18659, 21109, {0, 0, 0, 0, 0}, 35, 35, { 1257, 500, 10029, 775, ';' }},
-	{0x0429, 0x0029, 0x0429, 96,21112, 21118, 21118, 21118, 21133, 18713, 18717, 18691, 21157, {0, 0, 0, 0, 0}, 36, 36, { 1256, 20420, 10004, 720, ';' }},
-	{0x042A, 0x002A, 0x042A, 220,21160, 21166, 21166, 21166, 21187, 18750, 16366, 18721, 21215, {0, 0, 0, 0, 0}, 37, 37, { 1258, 500, 10000, 1258, ',' }},
-	{0x042B, 0x002B, 0x042B, 5,21218, 21224, 21224, 21224, 21243, 18781, 18785, 18754, 444, {0, 0, 0, 0, 0}, 38, 38, { 0, 500, 2, 1, ',' }},
-	{0x042D, 0x002D, 0x042D, 61,21308, 21314, 21314, 21314, 21329, 18807, 18811, 18789, 19406, {0, 0, 0, 0, 0}, 39, 39, { 1252, 500, 10000, 850, ';' }},
-	{0x042F, 0x002F, 0x042F, 128,21348, 21354, 21354, 21354, 21377, 18850, 18854, 18815, 21421, {0, 0, 0, 0, 0}, 40, 40, { 1251, 500, 10007, 866, ';' }},
-	{0x0436, 0x0036, 0x0436, 227,21424, 21430, 21430, 21430, 21455, 18882, 18886, 18858, 21480, {0, 0, 0, 0, 0}, 41, 41, { 1252, 500, 10000, 850, ',' }},
-	{0x0438, 0x0038, 0x0438, 67,21483, 21489, 21489, 21489, 21513, 18911, 18915, 18890, 21534, {0, 0, 0, 0, 0}, 42, 42, { 1252, 20277, 10079, 850, ';' }},
-	{0x0439, 0x0039, 0x0439, 93,21537, 21543, 21543, 21543, 21557, 18944, 18948, 18919, 21588, {0, 0, 0, 0, 0}, 43, 43, { 0, 500, 2, 1, ',' }},
-	{0x0441, 0x0041, 0x0441, 102,21591, 21597, 21597, 21597, 21613, 18973, 18977, 18952, 21631, {0, 0, 0, 0, 0}, 44, 44, { 1252, 500, 10000, 437, ',' }},
-	{0x0447, 0x0047, 0x0447, 93,21634, 21640, 21640, 21640, 21657, 19015, 19019, 18981, 21588, {0, 0, 0, 0, 0}, 45, 45, { 0, 500, 2, 1, ',' }},
-	{0x0449, 0x0049, 0x0449, 93,21694, 21700, 21700, 21700, 21714, 19048, 19052, 19023, 21588, {0, 0, 0, 0, 0}, 46, 46, { 0, 500, 2, 1, ',' }},
-	{0x044A, 0x004A, 0x044A, 93,21754, 21760, 21760, 21760, 21775, 19085, 19089, 19056, 21588, {0, 0, 0, 0, 0}, 47, 47, { 0, 500, 2, 1, ',' }},
-	{0x044B, 0x004B, 0x044B, 93,21822, 21828, 21828, 21828, 21844, 19120, 19124, 19093, 21588, {0, 0, 0, 0, 0}, 48, 48, { 0, 500, 2, 1, ',' }},
-	{0x044E, 0x004E, 0x044E, 93,21875, 21881, 21881, 21881, 21897, 19155, 1958, 19128, 21588, {0, 0, 0, 0, 0}, 49, 49, { 0, 500, 2, 1, ',' }},
-	{0x0456, 0x0056, 0x0456, 61,21928, 21934, 21934, 21934, 21951, 19178, 19182, 19159, 19406, {0, 0, 0, 0, 0}, 50, 50, { 1252, 500, 10000, 850, ',' }},
-	{0x0457, 0x0057, 0x0457, 93,21968, 21975, 21975, 21975, 21991, 19217, 19186, 19186, 21588, {0, 0, 0, 0, 0}, 51, 51, { 0, 500, 2, 1, ',' }},
-	{0x0801, 0x0001, 0x0801, 95,22025, 22031, 22031, 22031, 22045, 22075, 17619, 17590, 22079, {2, 1, 0, 0, 0}, 52, 52, { 1256, 20420, 10004, 720, ';' }},
-	{0x0804, 0x0004, 0x0804, 42,22082, 22088, 22088, 22088, 22104, 17712, 17716, 17720, 11173, {0, 0, 0, 0, 0}, 53, 53, { 936, 500, 10008, 936, ',' }},
-	{0x0807, 0x0007, 0x0807, 37,22120, 22126, 22126, 22126, 22147, 22165, 17796, 17774, 11094, {0, 0, 0, 0, 0}, 54, 54, { 1252, 20273, 10000, 850, ';' }},
-	{0x0809, 0x0009, 0x0809, 70,22169, 22175, 22175, 22175, 22175, 22200, 17849, 17834, 22204, {0, 0, 0, 0, 0}, 55, 55, { 1252, 20285, 10000, 850, ',' }},
-	{0x080A, 0x000A, 0x080A, 141,22207, 22213, 22213, 22213, 22230, 22249, 17877, 17853, 22253, {0, 0, 0, 0, 0}, 56, 56, { 1252, 20284, 10000, 850, ',' }},
-	{0x080C, 0x000C, 0x080C, 17,22256, 22262, 22262, 22262, 22279, 22300, 17927, 6053, 22304, {0, 0, 0, 0, 0}, 57, 57, { 1252, 20297, 10000, 850, ';' }},
-	{0x0810, 0x0010, 0x0810, 37,22307, 22313, 22313, 22313, 22335, 22355, 18043, 18019, 11094, {0, 0, 0, 0, 0}, 58, 58, { 1252, 500, 10000, 850, ';' }},
-	{0x0813, 0x0013, 0x0813, 17,22359, 22365, 22365, 22365, 22381, 22402, 18129, 18105, 22304, {0, 0, 0, 0, 0}, 59, 59, { 1252, 500, 10000, 850, ';' }},
-	{0x0814, 0x0014, 0x0814, 150,22406, 22412, 22412, 22412, 22439, 22461, 22465, 22469, 20211, {0, 0, 0, 0, 0}, 60, 60, { 1252, 20277, 10000, 850, ';' }},
-	{0x0816, 0x0016, 0x0816, 166,22472, 22478, 22478, 22478, 22500, 22522, 18214, 18185, 22526, {0, 0, 0, 0, 0}, 61, 61, { 1252, 500, 10000, 850, ';' }},
-	{0x081D, 0x001D, 0x081D, 63,22529, 22535, 22535, 22535, 22553, 22571, 18389, 18366, 19731, {0, 0, 0, 0, 0}, 62, 62, { 1252, 20278, 10000, 850, ';' }},
-	{0x0C01, 0x0001, 0x0C01, 58,22575, 22581, 22581, 22581, 22596, 22620, 17619, 17590, 22624, {16777216, 0, 0, 0, 0}, 63, 63, { 1256, 20420, 10004, 720, ';' }},
-	{0x0C04, 0x7C04, 0x0C04, 85,22627, 22633, 22633, 22633, 22667, 22704, 17716, 17720, 22708, {0, 0, 0, 0, 0}, 64, 64, { 950, 500, 10002, 950, ',' }},
-	{0x0C07, 0x0007, 0x0C07, 10,22711, 22717, 22717, 22717, 22734, 22756, 17796, 17774, 22760, {0, 0, 0, 0, 0}, 65, 65, { 1252, 20273, 10000, 850, ';' }},
-	{0x0C09, 0x0009, 0x0C09, 11,22763, 22769, 22769, 22769, 22769, 22789, 17849, 17834, 22793, {0, 0, 0, 0, 0}, 66, 66, { 1252, 500, 10000, 850, ',' }},
-	{0x0C0A, 0x000A, 0x0C0A, 61,22796, 22802, 22802, 22802, 22818, 22837, 17877, 17853, 19406, {0, 0, 0, 0, 0}, 67, 67, { 1252, 20284, 10000, 850, ';' }},
-	{0x0C0C, 0x000C, 0x0C0C, 32,22841, 22847, 22847, 22847, 22863, 22882, 17927, 6053, 22886, {0, 0, 0, 0, 0}, 68, 68, { 1252, 20297, 10000, 850, ';' }},
-	{0x1001, 0x0001, 0x1001, 122,22889, 22895, 22895, 22895, 22910, 22938, 17619, 17590, 22942, {16777216, 0, 0, 0, 0}, 69, 69, { 1256, 20420, 10004, 720, ';' }},
-	{0x1004, 0x0004, 0x1004, 179,22945, 22951, 22951, 22951, 22971, 22990, 17716, 17720, 22994, {0, 0, 0, 0, 0}, 70, 70, { 936, 500, 10008, 936, ',' }},
-	{0x1007, 0x0007, 0x1007, 120,22997, 23003, 23003, 23003, 23023, 23043, 17796, 17774, 23047, {0, 0, 0, 0, 0}, 71, 71, { 1252, 20273, 10000, 850, ';' }},
-	{0x1009, 0x0009, 0x1009, 32,23050, 23056, 23056, 23056, 23056, 23073, 17849, 17834, 22886, {0, 0, 0, 0, 0}, 72, 72, { 1252, 37, 10000, 850, ',' }},
-	{0x100A, 0x000A, 0x100A, 82,23077, 23083, 23083, 23083, 23103, 23124, 17877, 17853, 23128, {0, 0, 0, 0, 0}, 73, 73, { 1252, 20284, 10000, 850, ',' }},
-	{0x100C, 0x000C, 0x100C, 37,23131, 23137, 23137, 23137, 23158, 23177, 17927, 6053, 11094, {0, 0, 0, 0, 0}, 74, 74, { 1252, 20297, 10000, 850, ';' }},
-	{0x1401, 0x0001, 0x1401, 55,23181, 23187, 23187, 23187, 23204, 23236, 17619, 17590, 23240, {16777216, 0, 0, 0, 0}, 75, 75, { 1256, 20420, 10004, 720, ';' }},
-	{0x1404, 0x0004, 0x1404, 132,23243, 23249, 23249, 23249, 23278, 23315, 17716, 17720, 23319, {0, 0, 0, 0, 0}, 76, 76, { 950, 500, 10002, 950, ',' }},
-	{0x1409, 0x0009, 0x1409, 154,23322, 23328, 23328, 23328, 23328, 23350, 17849, 17834, 23354, {0, 0, 0, 0, 0}, 77, 77, { 1252, 500, 10000, 850, ',' }},
-	{0x140A, 0x000A, 0x140A, 44,23357, 23363, 23363, 23363, 23384, 23406, 17877, 17853, 23410, {0, 0, 0, 0, 0}, 78, 78, { 1252, 20284, 10000, 850, ',' }},
-	{0x140C, 0x000C, 0x140C, 120,23413, 23419, 23419, 23419, 23439, 23462, 17927, 6053, 23047, {0, 0, 0, 0, 0}, 79, 79, { 1252, 20297, 10000, 850, ';' }},
-	{0x1801, 0x0001, 0x1801, 123,23466, 23472, 23472, 23472, 23489, 23519, 17619, 17590, 23523, {16777216, 0, 0, 0, 0}, 80, 80, { 1256, 20420, 10004, 720, ';' }},
-	{0x1809, 0x0009, 0x1809, 91,23526, 23532, 23532, 23532, 23532, 23550, 17849, 17834, 23554, {0, 0, 0, 0, 0}, 81, 81, { 1252, 500, 10000, 850, ',' }},
-	{0x180A, 0x000A, 0x180A, 156,23557, 23563, 23563, 23563, 23580, 23599, 17877, 17853, 23603, {0, 0, 0, 0, 0}, 82, 82, { 1252, 20284, 10000, 850, ',' }},
-	{0x1C01, 0x0001, 0x1C01, 202,23606, 23612, 23612, 23612, 23629, 23655, 17619, 17590, 23659, {16777216, 0, 0, 0, 0}, 83, 83, { 1256, 20420, 10004, 720, ';' }},
-	{0x1C09, 0x0009, 0x1C09, 227,23662, 23668, 23668, 23668, 23668, 23691, 17849, 17834, 21480, {0, 0, 0, 0, 0}, 84, 84, { 1252, 500, 10000, 437, ',' }},
-	{0x1C0A, 0x000A, 0x1C0A, 54,23695, 23701, 23701, 23701, 23730, 23763, 17877, 17853, 23767, {0, 0, 0, 0, 0}, 85, 85, { 1252, 20284, 10000, 850, ',' }},
-	{0x2001, 0x0001, 0x2001, 155,23770, 23776, 23776, 23776, 23790, 23816, 17619, 17590, 23820, {16777216, 0, 0, 0, 0}, 86, 86, { 1256, 20420, 10004, 720, ';' }},
-	{0x200A, 0x000A, 0x200A, 217,23823, 23829, 23829, 23829, 23849, 23870, 17877, 17853, 23874, {0, 0, 0, 0, 0}, 87, 87, { 1252, 20284, 10000, 850, ',' }},
-	{0x2401, 0x0001, 0x2401, 224,23877, 23883, 23883, 23883, 23898, 23926, 17619, 17590, 23930, {16777216, 0, 0, 0, 0}, 88, 88, { 1256, 20420, 10004, 720, ';' }},
-	{0x240A, 0x000A, 0x240A, 43,23933, 23939, 23939, 23939, 23958, 23978, 17877, 17853, 23982, {0, 0, 0, 0, 0}, 89, 89, { 1252, 20284, 10000, 850, ',' }},
-	{0x2801, 0x0001, 0x2801, 191,23985, 23991, 23991, 23991, 24006, 24034, 17619, 17590, 24038, {16777216, 0, 0, 0, 0}, 90, 90, { 1256, 20420, 10004, 720, ';' }},
-	{0x280A, 0x000A, 0x280A, 157,24041, 24047, 24047, 24047, 24062, 24079, 17877, 17853, 24083, {0, 0, 0, 0, 0}, 91, 91, { 1252, 20284, 10000, 850, ',' }},
-	{0x2C01, 0x0001, 0x2C01, 100,24086, 24092, 24092, 24092, 24108, 24138, 17619, 17590, 24142, {16777216, 0, 0, 0, 0}, 92, 92, { 1256, 20420, 10004, 720, ';' }},
-	{0x2C09, 0x0009, 0x2C09, 205,24145, 24151, 24151, 24151, 24151, 24181, 17849, 17834, 24185, {0, 0, 0, 0, 0}, 93, 93, { 1252, 500, 10000, 850, ';' }},
-	{0x2C0A, 0x000A, 0x2C0A, 8,24188, 24194, 24194, 24194, 24214, 24235, 17877, 17853, 24239, {0, 0, 0, 0, 0}, 94, 94, { 1252, 20284, 10000, 850, ',' }},
-	{0x3001, 0x0001, 0x3001, 114,24242, 24248, 24248, 24248, 24265, 24293, 17619, 17590, 24297, {16777216, 0, 0, 0, 0}, 95, 95, { 1256, 20420, 10004, 720, ';' }},
-	{0x3009, 0x0009, 0x3009, 229,24300, 24306, 24306, 24306, 24306, 24325, 17849, 17834, 24329, {0, 0, 0, 0, 0}, 96, 96, { 1252, 500, 10000, 437, ',' }},
-	{0x300A, 0x000A, 0x300A, 56,24332, 24338, 24338, 24338, 24356, 24375, 17877, 17853, 24379, {0, 0, 0, 0, 0}, 97, 97, { 1252, 20284, 10000, 850, ',' }},
-	{0x3401, 0x0001, 0x3401, 110,24382, 24388, 24388, 24388, 24404, 24434, 17619, 17590, 24438, {16777216, 0, 0, 0, 0}, 98, 98, { 1256, 20420, 10004, 720, ';' }},
-	{0x3409, 0x0009, 0x3409, 160,24441, 24447, 24447, 24447, 24447, 24469, 17849, 17834, 24473, {0, 0, 0, 0, 0}, 99, 99, { 1252, 500, 10000, 437, ',' }},
-	{0x340A, 0x000A, 0x340A, 40,24476, 24482, 24482, 24482, 24498, 24515, 17877, 17853, 24519, {0, 0, 0, 0, 0}, 100, 100, { 1252, 20284, 10000, 850, ',' }},
-	{0x3801, 0x0001, 0x3801, 0,24522, 24528, 24528, 24528, 24558, 24622, 17619, 17590, 24626, {16777216, 0, 0, 0, 0}, 101, 101, { 1256, 20420, 10004, 720, ';' }},
-	{0x380A, 0x000A, 0x380A, 213,24629, 24635, 24635, 24635, 24653, 24672, 17877, 17853, 24676, {0, 0, 0, 0, 0}, 102, 102, { 1252, 20284, 10000, 850, ',' }},
-	{0x3C01, 0x0001, 0x3C01, 20,24679, 24685, 24685, 24685, 24702, 24734, 17619, 17590, 24738, {16777216, 0, 0, 0, 0}, 103, 103, { 1256, 20420, 10004, 720, ';' }},
-	{0x3C0A, 0x000A, 0x3C0A, 168,24741, 24747, 24747, 24747, 24766, 24786, 17877, 17853, 24790, {0, 0, 0, 0, 0}, 104, 104, { 1252, 20284, 10000, 850, ',' }},
-	{0x4001, 0x0001, 0x4001, 169,24793, 24799, 24799, 24799, 24814, 24838, 17619, 17590, 24842, {16777216, 0, 0, 0, 0}, 105, 105, { 1256, 20420, 10004, 720, ';' }},
-	{0x400A, 0x000A, 0x400A, 25,24845, 24851, 24851, 24851, 24869, 24888, 17877, 17853, 24892, {0, 0, 0, 0, 0}, 106, 106, { 1252, 20284, 10000, 850, ',' }},
-	{0x440A, 0x000A, 0x440A, 190,24895, 24901, 24901, 24901, 24923, 24946, 17877, 17853, 24950, {0, 0, 0, 0, 0}, 107, 107, { 1252, 20284, 10000, 850, ',' }},
-	{0x480A, 0x000A, 0x480A, 87,24953, 24959, 24959, 24959, 24978, 24998, 17877, 17853, 25002, {0, 0, 0, 0, 0}, 108, 108, { 1252, 20284, 10000, 850, ',' }},
-	{0x4C0A, 0x000A, 0x4C0A, 148,25005, 25011, 25011, 25011, 25031, 25052, 17877, 17853, 25056, {0, 0, 0, 0, 0}, 109, 109, { 1252, 20284, 10000, 850, ',' }},
-	{0x500A, 0x000A, 0x500A, 165,25059, 25065, 25065, 25065, 25087, 25110, 17877, 17853, 25114, {0, 0, 0, 0, 0}, 110, 110, { 1252, 20284, 10000, 850, ',' }},
-	{0x7C04, 0x007F, 0x0000, -1,25117, 19415, 17697, 17697, 17705, 19448, 17716, 17720, 0, {0, 0, 0, 0, 0}, -1, -1, { 950, 500, 10002, 950, ',' }}
+	{0x0001, 0x007F, 0x0401, -1,17536, 17539, 17539, 17539, 17546, 17561, 17565, 17536, 0, {0, 0, 0, 0, 0}, -1, -1, { 1256, 20420, 10004, 720, ';' }},
+	{0x0002, 0x007F, 0x0402, -1,17569, 17572, 17572, 17572, 17582, 17601, 17605, 17569, 0, {0, 0, 0, 0, 0}, -1, -1, { 1251, 20420, 10007, 866, ';' }},
+	{0x0003, 0x007F, 0x0403, -1,17609, 17612, 17612, 17612, 17620, 17628, 17632, 17609, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 500, 10000, 850, ';' }},
+	{0x0004, 0x007F, 0x0000, -1,17636, 17643, 17643, 17643, 17651, 17658, 17662, 17666, 0, {0, 0, 0, 0, 0}, -1, -1, { 936, 500, 10008, 936, ',' }},
+	{0x0005, 0x007F, 0x0405, -1,17669, 17672, 17672, 17672, 17678, 17688, 17692, 17669, 0, {0, 0, 0, 0, 0}, -1, -1, { 1250, 500, 10029, 852, ';' }},
+	{0x0006, 0x007F, 0x0406, -1,17696, 17699, 17699, 17699, 17706, 17712, 17716, 17696, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 20277, 10000, 850, ';' }},
+	{0x0007, 0x007F, 0x0407, -1,17720, 17723, 17723, 17723, 17730, 17738, 17742, 17720, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 20273, 10000, 850, ';' }},
+	{0x0008, 0x007F, 0x0408, -1,17746, 17749, 17749, 17749, 17755, 17772, 17776, 17746, 0, {0, 0, 0, 0, 0}, -1, -1, { 1253, 20273, 10006, 737, ';' }},
+	{0x0009, 0x007F, 0x0409, -1,17780, 17783, 17783, 17783, 17783, 17791, 17795, 17780, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 37, 10000, 437, ',' }},
+	{0x000A, 0x007F, 0x0C0A, -1,17799, 17802, 17802, 17802, 17810, 17819, 17823, 17799, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 20284, 10000, 850, ';' }},
+	{0x000B, 0x007F, 0x040B, -1,17827, 17830, 17830, 17830, 17838, 17844, 17848, 17827, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 20278, 10000, 850, ';' }},
+	{0x000C, 0x007F, 0x040C, -1,6053, 17852, 17852, 17852, 17859, 17869, 17873, 6053, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 20297, 10000, 850, ';' }},
+	{0x000D, 0x007F, 0x040D, -1,17877, 17880, 17880, 17880, 17887, 17898, 17902, 17877, 0, {0, 0, 0, 0, 0}, -1, -1, { 1255, 500, 10005, 862, ',' }},
+	{0x000E, 0x007F, 0x040E, -1,17906, 17909, 17909, 17909, 17919, 17926, 17930, 17906, 0, {0, 0, 0, 0, 0}, -1, -1, { 1250, 500, 10029, 852, ';' }},
+	{0x000F, 0x007F, 0x040F, -1,17934, 17937, 17937, 17937, 17947, 17957, 17961, 17934, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 20871, 10079, 850, ';' }},
+	{0x0010, 0x007F, 0x0410, -1,17965, 17968, 17968, 17968, 17976, 17985, 17989, 17965, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 20280, 10000, 850, ';' }},
+	{0x0011, 0x007F, 0x0411, -1,17993, 17996, 17996, 17996, 18005, 18015, 18019, 17993, 0, {0, 0, 0, 0, 0}, -1, -1, { 932, 20290, 10001, 932, ',' }},
+	{0x0012, 0x007F, 0x0412, -1,18023, 18026, 18026, 18026, 18033, 18043, 18047, 18023, 0, {0, 0, 0, 0, 0}, -1, -1, { 949, 20833, 10003, 949, ',' }},
+	{0x0013, 0x007F, 0x0413, -1,18051, 18054, 18054, 18054, 18060, 18071, 18075, 18051, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 500, 10000, 850, ';' }},
+	{0x0014, 0x007F, 0x0414, -1,18079, 18082, 18082, 18082, 18092, 18098, 18102, 18079, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 20277, 10000, 850, ';' }},
+	{0x0015, 0x007F, 0x0415, -1,18106, 18109, 18109, 18109, 18116, 18123, 18127, 18106, 0, {0, 0, 0, 0, 0}, -1, -1, { 1250, 20880, 10029, 852, ';' }},
+	{0x0016, 0x007F, 0x0416, -1,18131, 18134, 18134, 18134, 18145, 18156, 18160, 18131, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 500, 10000, 850, ';' }},
+	{0x0018, 0x007F, 0x0418, -1,18164, 18167, 18167, 18167, 18176, 18185, 18189, 18164, 0, {0, 0, 0, 0, 0}, -1, -1, { 1250, 20880, 10029, 852, ';' }},
+	{0x0019, 0x007F, 0x0419, -1,18193, 18196, 18196, 18196, 18204, 18219, 18223, 18193, 0, {0, 0, 0, 0, 0}, -1, -1, { 1251, 20880, 10007, 866, ';' }},
+	{0x001A, 0x007F, 0x041A, -1,18227, 18230, 18230, 18230, 18239, 18248, 18252, 18227, 0, {0, 0, 0, 0, 0}, -1, -1, { 1250, 500, 10082, 852, ';' }},
+	{0x001B, 0x007F, 0x041B, -1,18256, 18259, 18259, 18259, 18266, 18277, 18281, 18256, 0, {0, 0, 0, 0, 0}, -1, -1, { 1250, 20880, 10029, 852, ';' }},
+	{0x001C, 0x007F, 0x041C, -1,18285, 18288, 18288, 18288, 18297, 18304, 18308, 18285, 0, {0, 0, 0, 0, 0}, -1, -1, { 1250, 20880, 10029, 852, ';' }},
+	{0x001D, 0x007F, 0x041D, -1,18312, 18315, 18315, 18315, 18323, 18331, 18335, 18312, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 20278, 10000, 850, ';' }},
+	{0x001E, 0x007F, 0x041E, -1,18339, 18342, 18342, 18342, 18347, 18357, 18361, 18339, 0, {0, 0, 0, 0, 0}, -1, -1, { 874, 20838, 10021, 874, ',' }},
+	{0x001F, 0x007F, 0x041F, -1,18365, 18368, 18368, 18368, 18376, 18385, 18389, 18365, 0, {0, 0, 0, 0, 0}, -1, -1, { 1254, 20905, 10081, 857, ';' }},
+	{0x0021, 0x007F, 0x0421, -1,18393, 18396, 18396, 18396, 18407, 18424, 18428, 18393, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 500, 10000, 850, ';' }},
+	{0x0022, 0x007F, 0x0422, -1,18432, 18435, 18435, 18435, 18445, 18466, 18470, 18432, 0, {0, 0, 0, 0, 0}, -1, -1, { 1251, 500, 10017, 866, ';' }},
+	{0x0023, 0x007F, 0x0423, -1,18474, 18477, 18477, 18477, 18488, 18507, 18511, 18474, 0, {0, 0, 0, 0, 0}, -1, -1, { 1251, 500, 10007, 866, ';' }},
+	{0x0024, 0x007F, 0x0424, -1,18515, 18518, 18518, 18518, 18528, 18542, 18546, 18515, 0, {0, 0, 0, 0, 0}, -1, -1, { 1250, 20880, 10029, 852, ';' }},
+	{0x0025, 0x007F, 0x0425, -1,18550, 18553, 18553, 18553, 18562, 18568, 18572, 18550, 0, {0, 0, 0, 0, 0}, -1, -1, { 1257, 500, 10029, 775, ';' }},
+	{0x0026, 0x007F, 0x0426, -1,18576, 18579, 18579, 18579, 18587, 18597, 18601, 18576, 0, {0, 0, 0, 0, 0}, -1, -1, { 1257, 500, 10029, 775, ';' }},
+	{0x0027, 0x007F, 0x0427, -1,18605, 18608, 18608, 18608, 18619, 18629, 18633, 18605, 0, {0, 0, 0, 0, 0}, -1, -1, { 1257, 500, 10029, 775, ';' }},
+	{0x0029, 0x007F, 0x0429, -1,18637, 18640, 18640, 18640, 18648, 18659, 18663, 18637, 0, {0, 0, 0, 0, 0}, -1, -1, { 1256, 20420, 10004, 720, ';' }},
+	{0x002A, 0x007F, 0x042A, -1,18667, 18670, 18670, 18670, 18681, 18696, 16366, 18667, 0, {0, 0, 0, 0, 0}, -1, -1, { 1258, 500, 10000, 1258, ',' }},
+	{0x002B, 0x007F, 0x042B, -1,18700, 18703, 18703, 18703, 18712, 18727, 18731, 18700, 0, {0, 0, 0, 0, 0}, -1, -1, { 0, 500, 2, 1, ',' }},
+	{0x002D, 0x007F, 0x042D, -1,18735, 18738, 18738, 18738, 18745, 18753, 18757, 18735, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 500, 10000, 850, ';' }},
+	{0x002F, 0x007F, 0x042F, -1,18761, 18764, 18764, 18764, 18775, 18796, 18800, 18761, 0, {0, 0, 0, 0, 0}, -1, -1, { 1251, 500, 10007, 866, ';' }},
+	{0x0036, 0x007F, 0x0436, -1,18804, 18807, 18807, 18807, 18817, 18828, 18832, 18804, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 500, 10000, 850, ',' }},
+	{0x0038, 0x007F, 0x0438, -1,18836, 18839, 18839, 18839, 18847, 18857, 18861, 18836, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 20277, 10079, 850, ';' }},
+	{0x0039, 0x007F, 0x0439, -1,18865, 18868, 18868, 18868, 18874, 18890, 18894, 18865, 0, {0, 0, 0, 0, 0}, -1, -1, { 0, 500, 2, 1, ',' }},
+	{0x0041, 0x007F, 0x0441, -1,18898, 18901, 18901, 18901, 18909, 18919, 18923, 18898, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 500, 10000, 437, ',' }},
+	{0x0047, 0x007F, 0x0447, -1,18927, 18930, 18930, 18930, 18939, 18961, 18965, 18927, 0, {0, 0, 0, 0, 0}, -1, -1, { 0, 500, 2, 1, ',' }},
+	{0x0049, 0x007F, 0x0449, -1,18969, 18972, 18972, 18972, 18978, 18994, 18998, 18969, 0, {0, 0, 0, 0, 0}, -1, -1, { 0, 500, 2, 1, ',' }},
+	{0x004A, 0x007F, 0x044A, -1,19002, 19005, 19005, 19005, 19012, 19031, 19035, 19002, 0, {0, 0, 0, 0, 0}, -1, -1, { 0, 500, 2, 1, ',' }},
+	{0x004B, 0x007F, 0x044B, -1,19039, 19042, 19042, 19042, 19050, 19066, 19070, 19039, 0, {0, 0, 0, 0, 0}, -1, -1, { 0, 500, 2, 1, ',' }},
+	{0x004E, 0x007F, 0x044E, -1,19074, 19077, 19077, 19077, 19085, 19101, 1958, 19074, 0, {0, 0, 0, 0, 0}, -1, -1, { 0, 500, 2, 1, ',' }},
+	{0x0056, 0x007F, 0x0456, -1,19105, 19108, 19108, 19108, 19117, 19124, 19128, 19105, 0, {0, 0, 0, 0, 0}, -1, -1, { 1252, 500, 10000, 850, ',' }},
+	{0x0057, 0x007F, 0x0457, -1,19132, 19136, 19136, 19136, 19144, 19163, 19132, 18865, 0, {0, 0, 0, 0, 0}, -1, -1, { 0, 500, 2, 1, ',' }},
+	{0x0401, 0x0001, 0x0401, 174,19167, 19173, 19173, 19173, 19195, 17561, 17565, 17536, 11091, {16777216, 0, 0, 0, 0}, 0, 0, { 1256, 20420, 10004, 720, ';' }},
+	{0x0402, 0x0002, 0x0402, 19,19244, 19250, 19250, 19250, 19271, 17601, 17605, 17569, 19309, {0, 0, 0, 0, 0}, 1, 1, { 1251, 20420, 10007, 866, ';' }},
+	{0x0403, 0x0003, 0x0403, 61,19312, 19318, 19318, 19318, 19334, 17628, 17632, 17609, 19352, {0, 0, 0, 0, 0}, 2, 2, { 1252, 500, 10000, 850, ';' }},
+	{0x0404, 0x7C04, 0x0404, 207,19355, 19361, 19361, 19361, 19378, 19394, 17662, 17666, 19398, {0, 0, 0, 0, 0}, 3, 3, { 950, 500, 10002, 950, ',' }},
+	{0x0405, 0x0005, 0x0405, 49,19401, 19407, 19407, 19407, 19430, 17688, 17692, 17669, 19460, {0, 0, 0, 0, 0}, 4, 4, { 1250, 500, 10029, 852, ';' }},
+	{0x0406, 0x0006, 0x0406, 52,19463, 19469, 19469, 19469, 19486, 17712, 17716, 17696, 19502, {0, 0, 0, 0, 0}, 5, 5, { 1252, 20277, 10000, 850, ';' }},
+	{0x0407, 0x0007, 0x0407, 50,19505, 19511, 19511, 19511, 19528, 17738, 17742, 17720, 4135, {0, 0, 0, 0, 0}, 6, 6, { 1252, 20273, 10000, 850, ';' }},
+	{0x0408, 0x0008, 0x0408, 81,19550, 19556, 19556, 19556, 19571, 17772, 17776, 17746, 19603, {0, 0, 0, 0, 0}, 7, 7, { 1253, 20273, 10006, 737, ';' }},
+	{0x0409, 0x0009, 0x0409, 212,19606, 19612, 19612, 19612, 19612, 17791, 17795, 17780, 19636, {0, 0, 0, 0, 0}, 8, 8, { 1252, 37, 10000, 437, ',' }},
+	{0x040B, 0x000B, 0x040B, 63,19639, 19645, 19645, 19645, 19663, 17844, 17848, 17827, 19677, {0, 0, 0, 0, 0}, 9, 9, { 1252, 20278, 10000, 850, ';' }},
+	{0x040C, 0x000C, 0x040C, 68,19680, 19686, 19686, 19686, 19702, 17869, 17873, 6053, 19721, {0, 0, 0, 0, 0}, 10, 10, { 1252, 20297, 10000, 850, ';' }},
+	{0x040D, 0x000D, 0x040D, 92,19724, 19730, 19730, 19730, 19746, 17898, 17902, 17877, 19770, {0, 0, 0, 0, 0}, 11, 11, { 1255, 500, 10005, 862, ',' }},
+	{0x040E, 0x000E, 0x040E, 89,19773, 19779, 19779, 19779, 19799, 17926, 17930, 17906, 19822, {0, 0, 0, 0, 0}, 12, 12, { 1250, 500, 10029, 852, ';' }},
+	{0x040F, 0x000F, 0x040F, 97,19825, 19831, 19831, 19831, 19851, 17957, 17961, 17934, 19871, {0, 0, 0, 0, 0}, 13, 13, { 1252, 20871, 10079, 850, ';' }},
+	{0x0410, 0x0010, 0x0410, 98,19874, 19880, 19880, 19880, 19896, 17985, 17989, 17965, 19914, {0, 0, 0, 0, 0}, 14, 14, { 1252, 20280, 10000, 850, ';' }},
+	{0x0411, 0x0011, 0x0411, 101,19917, 19923, 19923, 19923, 19940, 18015, 18019, 17993, 19959, {0, 0, 0, 0, 0}, 15, 15, { 932, 20290, 10001, 932, ',' }},
+	{0x0412, 0x0012, 0x0412, 109,19962, 19968, 19968, 19968, 19989, 18043, 18047, 18023, 20014, {0, 0, 0, 0, 0}, 16, 16, { 949, 20833, 10003, 949, ',' }},
+	{0x0413, 0x0013, 0x0413, 149,20017, 20023, 20023, 20023, 20043, 18071, 18075, 18051, 20066, {0, 0, 0, 0, 0}, 17, 17, { 1252, 500, 10000, 850, ';' }},
+	{0x0414, 0x0014, 0x0414, 150,20069, 20075, 20101, 20101, 20128, 18098, 20150, 20154, 20157, {0, 0, 0, 0, 0}, 18, 18, { 1252, 20277, 10000, 850, ';' }},
+	{0x0415, 0x0015, 0x0415, 162,20160, 20166, 20166, 20166, 20182, 18123, 18127, 18106, 20198, {0, 0, 0, 0, 0}, 19, 19, { 1250, 20880, 10029, 852, ';' }},
+	{0x0416, 0x0016, 0x0416, 26,20201, 20207, 20207, 20207, 20227, 18156, 18160, 18131, 20247, {0, 0, 0, 0, 0}, 20, 20, { 1252, 500, 10000, 850, ';' }},
+	{0x0418, 0x0018, 0x0418, 171,20250, 20256, 20256, 20256, 20275, 18185, 18189, 18164, 20295, {0, 0, 0, 0, 0}, 21, 21, { 1250, 20880, 10029, 852, ';' }},
+	{0x0419, 0x0019, 0x0419, 172,20298, 20304, 20304, 20304, 20321, 18219, 18223, 18193, 20351, {0, 0, 0, 0, 0}, 22, 22, { 1251, 20880, 10007, 866, ';' }},
+	{0x041A, 0x001A, 0x041A, 88,20354, 20360, 20360, 20360, 20379, 18248, 18252, 18227, 20399, {0, 0, 0, 0, 0}, 23, 23, { 1250, 500, 10082, 852, ';' }},
+	{0x041B, 0x001B, 0x041B, 183,20402, 20408, 20408, 20408, 20426, 18277, 18281, 18256, 20460, {0, 0, 0, 0, 0}, 24, 24, { 1250, 20880, 10029, 852, ';' }},
+	{0x041C, 0x001C, 0x041C, 4,20463, 20469, 20469, 20469, 20488, 18304, 18308, 18285, 20508, {0, 0, 0, 0, 0}, 25, 25, { 1250, 20880, 10029, 852, ';' }},
+	{0x041D, 0x001D, 0x041D, 178,20511, 20517, 20517, 20517, 20534, 18331, 18335, 18312, 20552, {0, 0, 0, 0, 0}, 26, 26, { 1252, 20278, 10000, 850, ';' }},
+	{0x041E, 0x001E, 0x041E, 197,20555, 20561, 20561, 20561, 20577, 18357, 18361, 18339, 20617, {0, 0, 0, 0, 0}, 27, 27, { 874, 20838, 10021, 874, ',' }},
+	{0x041F, 0x001F, 0x041F, 204,20620, 20626, 20626, 20626, 20643, 18385, 18389, 18365, 20663, {0, 0, 0, 0, 0}, 28, 28, { 1254, 20905, 10081, 857, ';' }},
+	{0x0421, 0x0021, 0x0421, 90,20666, 20672, 20672, 20672, 20695, 18424, 18428, 18393, 20724, {0, 0, 0, 0, 0}, 29, 29, { 1252, 500, 10000, 850, ';' }},
+	{0x0422, 0x0022, 0x0422, 209,20727, 20733, 20733, 20733, 20753, 18466, 18470, 18432, 20791, {0, 0, 0, 0, 0}, 30, 30, { 1251, 500, 10017, 866, ';' }},
+	{0x0423, 0x0023, 0x0423, 30,20794, 20800, 20800, 20800, 20821, 18507, 18511, 18474, 20859, {0, 0, 0, 0, 0}, 31, 31, { 1251, 500, 10007, 866, ';' }},
+	{0x0424, 0x0024, 0x0424, 181,20862, 20868, 20868, 20868, 20889, 18542, 18546, 18515, 20915, {0, 0, 0, 0, 0}, 32, 32, { 1250, 20880, 10029, 852, ';' }},
+	{0x0425, 0x0025, 0x0425, 57,20918, 20924, 20924, 20924, 20943, 18568, 18572, 18550, 20957, {0, 0, 0, 0, 0}, 33, 33, { 1257, 500, 10029, 775, ';' }},
+	{0x0426, 0x0026, 0x0426, 121,20960, 20966, 20966, 20966, 20983, 18597, 18601, 18576, 21003, {0, 0, 0, 0, 0}, 34, 34, { 1257, 500, 10029, 775, ';' }},
+	{0x0427, 0x0027, 0x0427, 119,21006, 21012, 21012, 21012, 21035, 18629, 18633, 18605, 21055, {0, 0, 0, 0, 0}, 35, 35, { 1257, 500, 10029, 775, ';' }},
+	{0x0429, 0x0029, 0x0429, 96,21058, 21064, 21064, 21064, 21079, 18659, 18663, 18637, 21103, {0, 0, 0, 0, 0}, 36, 36, { 1256, 20420, 10004, 720, ';' }},
+	{0x042A, 0x002A, 0x042A, 220,21106, 21112, 21112, 21112, 21133, 18696, 16366, 18667, 21161, {0, 0, 0, 0, 0}, 37, 37, { 1258, 500, 10000, 1258, ',' }},
+	{0x042B, 0x002B, 0x042B, 5,21164, 21170, 21170, 21170, 21189, 18727, 18731, 18700, 444, {0, 0, 0, 0, 0}, 38, 38, { 0, 500, 2, 1, ',' }},
+	{0x042D, 0x002D, 0x042D, 61,21254, 21260, 21260, 21260, 21275, 18753, 18757, 18735, 19352, {0, 0, 0, 0, 0}, 39, 39, { 1252, 500, 10000, 850, ';' }},
+	{0x042F, 0x002F, 0x042F, 128,21294, 21300, 21300, 21300, 21323, 18796, 18800, 18761, 21367, {0, 0, 0, 0, 0}, 40, 40, { 1251, 500, 10007, 866, ';' }},
+	{0x0436, 0x0036, 0x0436, 227,21370, 21376, 21376, 21376, 21401, 18828, 18832, 18804, 21426, {0, 0, 0, 0, 0}, 41, 41, { 1252, 500, 10000, 850, ',' }},
+	{0x0438, 0x0038, 0x0438, 67,21429, 21435, 21435, 21435, 21459, 18857, 18861, 18836, 21480, {0, 0, 0, 0, 0}, 42, 42, { 1252, 20277, 10079, 850, ';' }},
+	{0x0439, 0x0039, 0x0439, 93,21483, 21489, 21489, 21489, 21503, 18890, 18894, 18865, 21534, {0, 0, 0, 0, 0}, 43, 43, { 0, 500, 2, 1, ',' }},
+	{0x0441, 0x0041, 0x0441, 102,21537, 21543, 21543, 21543, 21559, 18919, 18923, 18898, 21577, {0, 0, 0, 0, 0}, 44, 44, { 1252, 500, 10000, 437, ',' }},
+	{0x0447, 0x0047, 0x0447, 93,21580, 21586, 21586, 21586, 21603, 18961, 18965, 18927, 21534, {0, 0, 0, 0, 0}, 45, 45, { 0, 500, 2, 1, ',' }},
+	{0x0449, 0x0049, 0x0449, 93,21640, 21646, 21646, 21646, 21660, 18994, 18998, 18969, 21534, {0, 0, 0, 0, 0}, 46, 46, { 0, 500, 2, 1, ',' }},
+	{0x044A, 0x004A, 0x044A, 93,21700, 21706, 21706, 21706, 21721, 19031, 19035, 19002, 21534, {0, 0, 0, 0, 0}, 47, 47, { 0, 500, 2, 1, ',' }},
+	{0x044B, 0x004B, 0x044B, 93,21768, 21774, 21774, 21774, 21790, 19066, 19070, 19039, 21534, {0, 0, 0, 0, 0}, 48, 48, { 0, 500, 2, 1, ',' }},
+	{0x044E, 0x004E, 0x044E, 93,21821, 21827, 21827, 21827, 21843, 19101, 1958, 19074, 21534, {0, 0, 0, 0, 0}, 49, 49, { 0, 500, 2, 1, ',' }},
+	{0x0456, 0x0056, 0x0456, 61,21874, 21880, 21880, 21880, 21897, 19124, 19128, 19105, 19352, {0, 0, 0, 0, 0}, 50, 50, { 1252, 500, 10000, 850, ',' }},
+	{0x0457, 0x0057, 0x0457, 93,21914, 21921, 21921, 21921, 21937, 19163, 19132, 19132, 21534, {0, 0, 0, 0, 0}, 51, 51, { 0, 500, 2, 1, ',' }},
+	{0x0801, 0x0001, 0x0801, 95,21971, 21977, 21977, 21977, 21991, 22021, 17565, 17536, 22025, {2, 1, 0, 0, 0}, 52, 52, { 1256, 20420, 10004, 720, ';' }},
+	{0x0804, 0x0004, 0x0804, 42,22028, 22034, 22034, 22034, 22050, 17658, 17662, 17666, 11173, {0, 0, 0, 0, 0}, 53, 53, { 936, 500, 10008, 936, ',' }},
+	{0x0807, 0x0007, 0x0807, 37,22066, 22072, 22072, 22072, 22093, 22111, 17742, 17720, 11094, {0, 0, 0, 0, 0}, 54, 54, { 1252, 20273, 10000, 850, ';' }},
+	{0x0809, 0x0009, 0x0809, 70,22115, 22121, 22121, 22121, 22121, 22146, 17795, 17780, 22150, {0, 0, 0, 0, 0}, 55, 55, { 1252, 20285, 10000, 850, ',' }},
+	{0x080A, 0x000A, 0x080A, 141,22153, 22159, 22159, 22159, 22176, 22195, 17823, 17799, 22199, {0, 0, 0, 0, 0}, 56, 56, { 1252, 20284, 10000, 850, ',' }},
+	{0x080C, 0x000C, 0x080C, 17,22202, 22208, 22208, 22208, 22225, 22246, 17873, 6053, 22250, {0, 0, 0, 0, 0}, 57, 57, { 1252, 20297, 10000, 850, ';' }},
+	{0x0810, 0x0010, 0x0810, 37,22253, 22259, 22259, 22259, 22281, 22301, 17989, 17965, 11094, {0, 0, 0, 0, 0}, 58, 58, { 1252, 500, 10000, 850, ';' }},
+	{0x0813, 0x0013, 0x0813, 17,22305, 22311, 22311, 22311, 22327, 22348, 18075, 18051, 22250, {0, 0, 0, 0, 0}, 59, 59, { 1252, 500, 10000, 850, ';' }},
+	{0x0814, 0x0014, 0x0814, 150,22352, 22358, 22358, 22358, 22385, 22407, 22411, 22415, 20157, {0, 0, 0, 0, 0}, 60, 60, { 1252, 20277, 10000, 850, ';' }},
+	{0x0816, 0x0016, 0x0816, 166,22418, 22424, 22424, 22424, 22446, 22468, 18160, 18131, 22472, {0, 0, 0, 0, 0}, 61, 61, { 1252, 500, 10000, 850, ';' }},
+	{0x081D, 0x001D, 0x081D, 63,22475, 22481, 22481, 22481, 22499, 22517, 18335, 18312, 19677, {0, 0, 0, 0, 0}, 62, 62, { 1252, 20278, 10000, 850, ';' }},
+	{0x0C01, 0x0001, 0x0C01, 58,22521, 22527, 22527, 22527, 22542, 22566, 17565, 17536, 22570, {16777216, 0, 0, 0, 0}, 63, 63, { 1256, 20420, 10004, 720, ';' }},
+	{0x0C04, 0x7C04, 0x0C04, 85,22573, 22579, 22579, 22579, 22613, 22650, 17662, 17666, 22654, {0, 0, 0, 0, 0}, 64, 64, { 950, 500, 10002, 950, ',' }},
+	{0x0C07, 0x0007, 0x0C07, 10,22657, 22663, 22663, 22663, 22680, 22702, 17742, 17720, 22706, {0, 0, 0, 0, 0}, 65, 65, { 1252, 20273, 10000, 850, ';' }},
+	{0x0C09, 0x0009, 0x0C09, 11,22709, 22715, 22715, 22715, 22715, 22735, 17795, 17780, 22739, {0, 0, 0, 0, 0}, 66, 66, { 1252, 500, 10000, 850, ',' }},
+	{0x0C0A, 0x000A, 0x0C0A, 61,22742, 22748, 22748, 22748, 22764, 22783, 17823, 17799, 19352, {0, 0, 0, 0, 0}, 67, 67, { 1252, 20284, 10000, 850, ';' }},
+	{0x0C0C, 0x000C, 0x0C0C, 32,22787, 22793, 22793, 22793, 22809, 22828, 17873, 6053, 22832, {0, 0, 0, 0, 0}, 68, 68, { 1252, 20297, 10000, 850, ';' }},
+	{0x1001, 0x0001, 0x1001, 122,22835, 22841, 22841, 22841, 22856, 22884, 17565, 17536, 22888, {16777216, 0, 0, 0, 0}, 69, 69, { 1256, 20420, 10004, 720, ';' }},
+	{0x1004, 0x0004, 0x1004, 179,22891, 22897, 22897, 22897, 22917, 22936, 17662, 17666, 22940, {0, 0, 0, 0, 0}, 70, 70, { 936, 500, 10008, 936, ',' }},
+	{0x1007, 0x0007, 0x1007, 120,22943, 22949, 22949, 22949, 22969, 22989, 17742, 17720, 22993, {0, 0, 0, 0, 0}, 71, 71, { 1252, 20273, 10000, 850, ';' }},
+	{0x1009, 0x0009, 0x1009, 32,22996, 23002, 23002, 23002, 23002, 23019, 17795, 17780, 22832, {0, 0, 0, 0, 0}, 72, 72, { 1252, 37, 10000, 850, ',' }},
+	{0x100A, 0x000A, 0x100A, 82,23023, 23029, 23029, 23029, 23049, 23070, 17823, 17799, 23074, {0, 0, 0, 0, 0}, 73, 73, { 1252, 20284, 10000, 850, ',' }},
+	{0x100C, 0x000C, 0x100C, 37,23077, 23083, 23083, 23083, 23104, 23123, 17873, 6053, 11094, {0, 0, 0, 0, 0}, 74, 74, { 1252, 20297, 10000, 850, ';' }},
+	{0x1401, 0x0001, 0x1401, 55,23127, 23133, 23133, 23133, 23150, 23182, 17565, 17536, 23186, {16777216, 0, 0, 0, 0}, 75, 75, { 1256, 20420, 10004, 720, ';' }},
+	{0x1404, 0x0004, 0x1404, 132,23189, 23195, 23195, 23195, 23224, 23261, 17662, 17666, 23265, {0, 0, 0, 0, 0}, 76, 76, { 950, 500, 10002, 950, ',' }},
+	{0x1409, 0x0009, 0x1409, 154,23268, 23274, 23274, 23274, 23274, 23296, 17795, 17780, 23300, {0, 0, 0, 0, 0}, 77, 77, { 1252, 500, 10000, 850, ',' }},
+	{0x140A, 0x000A, 0x140A, 44,23303, 23309, 23309, 23309, 23330, 23352, 17823, 17799, 23356, {0, 0, 0, 0, 0}, 78, 78, { 1252, 20284, 10000, 850, ',' }},
+	{0x140C, 0x000C, 0x140C, 120,23359, 23365, 23365, 23365, 23385, 23408, 17873, 6053, 22993, {0, 0, 0, 0, 0}, 79, 79, { 1252, 20297, 10000, 850, ';' }},
+	{0x1801, 0x0001, 0x1801, 123,23412, 23418, 23418, 23418, 23435, 23465, 17565, 17536, 23469, {16777216, 0, 0, 0, 0}, 80, 80, { 1256, 20420, 10004, 720, ';' }},
+	{0x1809, 0x0009, 0x1809, 91,23472, 23478, 23478, 23478, 23478, 23496, 17795, 17780, 23500, {0, 0, 0, 0, 0}, 81, 81, { 1252, 500, 10000, 850, ',' }},
+	{0x180A, 0x000A, 0x180A, 156,23503, 23509, 23509, 23509, 23526, 23545, 17823, 17799, 23549, {0, 0, 0, 0, 0}, 82, 82, { 1252, 20284, 10000, 850, ',' }},
+	{0x1C01, 0x0001, 0x1C01, 202,23552, 23558, 23558, 23558, 23575, 23601, 17565, 17536, 23605, {16777216, 0, 0, 0, 0}, 83, 83, { 1256, 20420, 10004, 720, ';' }},
+	{0x1C09, 0x0009, 0x1C09, 227,23608, 23614, 23614, 23614, 23614, 23637, 17795, 17780, 21426, {0, 0, 0, 0, 0}, 84, 84, { 1252, 500, 10000, 437, ',' }},
+	{0x1C0A, 0x000A, 0x1C0A, 54,23641, 23647, 23647, 23647, 23676, 23709, 17823, 17799, 23713, {0, 0, 0, 0, 0}, 85, 85, { 1252, 20284, 10000, 850, ',' }},
+	{0x2001, 0x0001, 0x2001, 155,23716, 23722, 23722, 23722, 23736, 23762, 17565, 17536, 23766, {16777216, 0, 0, 0, 0}, 86, 86, { 1256, 20420, 10004, 720, ';' }},
+	{0x200A, 0x000A, 0x200A, 217,23769, 23775, 23775, 23775, 23795, 23816, 17823, 17799, 23820, {0, 0, 0, 0, 0}, 87, 87, { 1252, 20284, 10000, 850, ',' }},
+	{0x2401, 0x0001, 0x2401, 224,23823, 23829, 23829, 23829, 23844, 23872, 17565, 17536, 23876, {16777216, 0, 0, 0, 0}, 88, 88, { 1256, 20420, 10004, 720, ';' }},
+	{0x240A, 0x000A, 0x240A, 43,23879, 23885, 23885, 23885, 23904, 23924, 17823, 17799, 23928, {0, 0, 0, 0, 0}, 89, 89, { 1252, 20284, 10000, 850, ',' }},
+	{0x2801, 0x0001, 0x2801, 191,23931, 23937, 23937, 23937, 23952, 23980, 17565, 17536, 23984, {16777216, 0, 0, 0, 0}, 90, 90, { 1256, 20420, 10004, 720, ';' }},
+	{0x280A, 0x000A, 0x280A, 157,23987, 23993, 23993, 23993, 24008, 24025, 17823, 17799, 24029, {0, 0, 0, 0, 0}, 91, 91, { 1252, 20284, 10000, 850, ',' }},
+	{0x2C01, 0x0001, 0x2C01, 100,24032, 24038, 24038, 24038, 24054, 24084, 17565, 17536, 24088, {16777216, 0, 0, 0, 0}, 92, 92, { 1256, 20420, 10004, 720, ';' }},
+	{0x2C0A, 0x000A, 0x2C0A, 8,24091, 24097, 24097, 24097, 24117, 24138, 17823, 17799, 24142, {0, 0, 0, 0, 0}, 93, 93, { 1252, 20284, 10000, 850, ',' }},
+	{0x3001, 0x0001, 0x3001, 114,24145, 24151, 24151, 24151, 24168, 24196, 17565, 17536, 24200, {16777216, 0, 0, 0, 0}, 94, 94, { 1256, 20420, 10004, 720, ';' }},
+	{0x3009, 0x0009, 0x3009, 229,24203, 24209, 24209, 24209, 24209, 24228, 17795, 17780, 24232, {0, 0, 0, 0, 0}, 95, 95, { 1252, 500, 10000, 437, ',' }},
+	{0x300A, 0x000A, 0x300A, 56,24235, 24241, 24241, 24241, 24259, 24278, 17823, 17799, 24282, {0, 0, 0, 0, 0}, 96, 96, { 1252, 20284, 10000, 850, ',' }},
+	{0x3401, 0x0001, 0x3401, 110,24285, 24291, 24291, 24291, 24307, 24337, 17565, 17536, 24341, {16777216, 0, 0, 0, 0}, 97, 97, { 1256, 20420, 10004, 720, ';' }},
+	{0x3409, 0x0009, 0x3409, 160,24344, 24350, 24350, 24350, 24350, 24372, 17795, 17780, 24376, {0, 0, 0, 0, 0}, 98, 98, { 1252, 500, 10000, 437, ',' }},
+	{0x340A, 0x000A, 0x340A, 40,24379, 24385, 24385, 24385, 24401, 24418, 17823, 17799, 24422, {0, 0, 0, 0, 0}, 99, 99, { 1252, 20284, 10000, 850, ',' }},
+	{0x3801, 0x0001, 0x3801, 0,24425, 24431, 24431, 24431, 24461, 24525, 17565, 17536, 24529, {16777216, 0, 0, 0, 0}, 100, 100, { 1256, 20420, 10004, 720, ';' }},
+	{0x380A, 0x000A, 0x380A, 213,24532, 24538, 24538, 24538, 24556, 24575, 17823, 17799, 24579, {0, 0, 0, 0, 0}, 101, 101, { 1252, 20284, 10000, 850, ',' }},
+	{0x3C01, 0x0001, 0x3C01, 20,24582, 24588, 24588, 24588, 24605, 24637, 17565, 17536, 24641, {16777216, 0, 0, 0, 0}, 102, 102, { 1256, 20420, 10004, 720, ';' }},
+	{0x3C0A, 0x000A, 0x3C0A, 168,24644, 24650, 24650, 24650, 24669, 24689, 17823, 17799, 24693, {0, 0, 0, 0, 0}, 103, 103, { 1252, 20284, 10000, 850, ',' }},
+	{0x4001, 0x0001, 0x4001, 169,24696, 24702, 24702, 24702, 24717, 24741, 17565, 17536, 24745, {16777216, 0, 0, 0, 0}, 104, 104, { 1256, 20420, 10004, 720, ';' }},
+	{0x400A, 0x000A, 0x400A, 25,24748, 24754, 24754, 24754, 24772, 24791, 17823, 17799, 24795, {0, 0, 0, 0, 0}, 105, 105, { 1252, 20284, 10000, 850, ',' }},
+	{0x440A, 0x000A, 0x440A, 190,24798, 24804, 24804, 24804, 24826, 24849, 17823, 17799, 24853, {0, 0, 0, 0, 0}, 106, 106, { 1252, 20284, 10000, 850, ',' }},
+	{0x480A, 0x000A, 0x480A, 87,24856, 24862, 24862, 24862, 24881, 24901, 17823, 17799, 24905, {0, 0, 0, 0, 0}, 107, 107, { 1252, 20284, 10000, 850, ',' }},
+	{0x4C0A, 0x000A, 0x4C0A, 148,24908, 24914, 24914, 24914, 24934, 24955, 17823, 17799, 24959, {0, 0, 0, 0, 0}, 108, 108, { 1252, 20284, 10000, 850, ',' }},
+	{0x500A, 0x000A, 0x500A, 165,24962, 24968, 24968, 24968, 24990, 25013, 17823, 17799, 25017, {0, 0, 0, 0, 0}, 109, 109, { 1252, 20284, 10000, 850, ',' }},
+	{0x7C04, 0x007F, 0x0000, -1,25020, 19361, 17643, 17643, 17651, 19394, 17662, 17666, 0, {0, 0, 0, 0, 0}, -1, -1, { 950, 500, 10002, 950, ',' }}
 };
 
 
 static const CultureInfoNameEntry culture_name_entries [] = {
-	{18858, 42},
-	{25124, 94},
-	{17590, 0},
-	{25130, 154},
-	{25136, 156},
-	{25142, 128},
-	{25148, 116},
-	{25154, 105},
-	{25160, 145},
-	{25166, 151},
-	{25172, 148},
-	{25178, 122},
-	{25184, 133},
-	{25190, 139},
-	{25196, 158},
-	{25202, 53},
-	{25208, 143},
-	{25214, 136},
-	{25220, 141},
-	{18528, 32},
-	{25226, 84},
-	{17623, 1},
-	{25232, 54},
-	{17663, 2},
-	{25238, 55},
-	{17723, 4},
-	{25244, 57},
-	{17750, 5},
-	{25250, 58},
-	{17774, 6},
-	{25256, 118},
-	{25262, 107},
-	{25268, 59},
-	{25274, 124},
-	{17800, 7},
-	{25280, 60},
-	{17834, 8},
-	{25286, 119},
-	{25292, 125},
-	{25298, 108},
-	{25304, 134},
-	{25310, 130},
-	{25316, 152},
-	{25322, 146},
-	{25328, 61},
-	{25334, 137},
-	{25340, 149},
-	{17853, 9},
-	{25346, 147},
-	{25352, 159},
-	{25358, 153},
-	{25364, 142},
-	{25370, 131},
-	{25376, 138},
-	{25382, 150},
-	{25388, 120},
-	{25394, 126},
-	{25400, 161},
-	{25406, 109},
-	{25412, 162},
-	{25418, 135},
-	{25424, 144},
-	{25430, 163},
-	{25436, 157},
-	{25442, 160},
-	{25448, 155},
-	{25454, 140},
-	{18604, 34},
-	{25460, 86},
-	{18789, 40},
-	{25466, 92},
-	{18691, 37},
-	{25472, 89},
-	{17881, 10},
-	{25478, 62},
-	{18890, 43},
-	{25484, 95},
+	{18804, 42},
+	{25027, 94},
+	{17536, 0},
+	{25033, 153},
+	{25039, 155},
+	{25045, 128},
+	{25051, 116},
+	{25057, 105},
+	{25063, 145},
+	{25069, 150},
+	{25075, 147},
+	{25081, 122},
+	{25087, 133},
+	{25093, 139},
+	{25099, 157},
+	{25105, 53},
+	{25111, 143},
+	{25117, 136},
+	{25123, 141},
+	{18474, 32},
+	{25129, 84},
+	{17569, 1},
+	{25135, 54},
+	{17609, 2},
+	{25141, 55},
+	{17669, 4},
+	{25147, 57},
+	{17696, 5},
+	{25153, 58},
+	{17720, 6},
+	{25159, 118},
+	{25165, 107},
+	{25171, 59},
+	{25177, 124},
+	{17746, 7},
+	{25183, 60},
+	{17780, 8},
+	{25189, 119},
+	{25195, 125},
+	{25201, 108},
+	{25207, 134},
+	{25213, 130},
+	{25219, 151},
+	{25225, 61},
+	{25231, 137},
+	{25237, 148},
+	{17799, 9},
+	{25243, 146},
+	{25249, 158},
+	{25255, 152},
+	{25261, 142},
+	{25267, 131},
+	{25273, 138},
+	{25279, 149},
+	{25285, 120},
+	{25291, 126},
+	{25297, 160},
+	{25303, 109},
+	{25309, 161},
+	{25315, 135},
+	{25321, 144},
+	{25327, 162},
+	{25333, 156},
+	{25339, 159},
+	{25345, 154},
+	{25351, 140},
+	{18550, 34},
+	{25357, 86},
+	{18735, 40},
+	{25363, 92},
+	{18637, 37},
+	{25369, 89},
+	{17827, 10},
+	{25375, 62},
+	{18836, 43},
+	{25381, 95},
 	{6053, 11},
-	{25490, 110},
-	{25496, 121},
-	{25502, 127},
-	{25508, 63},
-	{25514, 132},
-	{19159, 51},
-	{25520, 103},
-	{18981, 46},
-	{25526, 98},
-	{17931, 12},
-	{25532, 64},
-	{18919, 44},
-	{25538, 96},
-	{18281, 24},
-	{25544, 76},
-	{17960, 13},
-	{25550, 65},
-	{18754, 39},
-	{25556, 91},
-	{18447, 30},
-	{25562, 82},
-	{17988, 14},
-	{25568, 66},
-	{18019, 15},
-	{25574, 111},
-	{25580, 67},
-	{18047, 16},
-	{25586, 68},
-	{19093, 49},
-	{25592, 101},
-	{18077, 17},
-	{25598, 69},
-	{19186, 52},
-	{25604, 104},
-	{18659, 36},
-	{25611, 88},
-	{18630, 35},
-	{25617, 87},
-	{18815, 41},
-	{25623, 93},
-	{19128, 50},
-	{25629, 102},
-	{25635, 71},
-	{18105, 18},
-	{25641, 112},
-	{25647, 70},
-	{25653, 113},
-	{18133, 19},
-	{18160, 20},
-	{25659, 72},
-	{18185, 21},
-	{25665, 73},
-	{25671, 114},
-	{18218, 22},
-	{25677, 74},
-	{18247, 23},
-	{25683, 75},
-	{18310, 25},
-	{25689, 77},
-	{18569, 33},
-	{25695, 85},
-	{18339, 26},
-	{25701, 78},
-	{18366, 27},
-	{25707, 115},
-	{25713, 79},
-	{18952, 45},
-	{25719, 97},
-	{19023, 47},
-	{25725, 99},
-	{19056, 48},
-	{25731, 100},
-	{18393, 28},
-	{25737, 80},
-	{18419, 29},
-	{25743, 81},
-	{18486, 31},
-	{25749, 83},
-	{18721, 38},
-	{25755, 90},
-	{25761, 3},
-	{25768, 164},
-	{25775, 106},
-	{25781, 117},
-	{25787, 129},
-	{25793, 123},
-	{25799, 56}
+	{25387, 110},
+	{25393, 121},
+	{25399, 127},
+	{25405, 63},
+	{25411, 132},
+	{19105, 51},
+	{25417, 103},
+	{18927, 46},
+	{25423, 98},
+	{17877, 12},
+	{25429, 64},
+	{18865, 44},
+	{25435, 96},
+	{18227, 24},
+	{25441, 76},
+	{17906, 13},
+	{25447, 65},
+	{18700, 39},
+	{25453, 91},
+	{18393, 30},
+	{25459, 82},
+	{17934, 14},
+	{25465, 66},
+	{17965, 15},
+	{25471, 111},
+	{25477, 67},
+	{17993, 16},
+	{25483, 68},
+	{19039, 49},
+	{25489, 101},
+	{18023, 17},
+	{25495, 69},
+	{19132, 52},
+	{25501, 104},
+	{18605, 36},
+	{25508, 88},
+	{18576, 35},
+	{25514, 87},
+	{18761, 41},
+	{25520, 93},
+	{19074, 50},
+	{25526, 102},
+	{25532, 71},
+	{18051, 18},
+	{25538, 112},
+	{25544, 70},
+	{25550, 113},
+	{18079, 19},
+	{18106, 20},
+	{25556, 72},
+	{18131, 21},
+	{25562, 73},
+	{25568, 114},
+	{18164, 22},
+	{25574, 74},
+	{18193, 23},
+	{25580, 75},
+	{18256, 25},
+	{25586, 77},
+	{18515, 33},
+	{25592, 85},
+	{18285, 26},
+	{25598, 78},
+	{18312, 27},
+	{25604, 115},
+	{25610, 79},
+	{18898, 45},
+	{25616, 97},
+	{18969, 47},
+	{25622, 99},
+	{19002, 48},
+	{25628, 100},
+	{18339, 28},
+	{25634, 80},
+	{18365, 29},
+	{25640, 81},
+	{18432, 31},
+	{25646, 83},
+	{18667, 38},
+	{25652, 90},
+	{25658, 3},
+	{25665, 163},
+	{25672, 106},
+	{25678, 117},
+	{25684, 129},
+	{25690, 123},
+	{25696, 56}
 };
 
 
 static const RegionInfoEntry region_entries [] = {
-	{ 0, 0,24626,322,322,25805,322,25826,25830},
-	{ 0, 1,25858,322,322,25861,322,25873,25877},
-	{ 0, 2,25885,322,322,25888,322,25908,25912},
-	{ 0, 3,25934,322,322,25937,322,25908,25912},
-	{ 0, 4,20562,322,322,25946,322,25954,25958},
-	{ 0, 5,444,322,322,25971,322,25979,25983},
-	{ 0, 6,25997,322,322,26000,322,26021,26025},
-	{ 0, 7,26054,322,322,26057,322,26064,26068},
-	{ 0, 8,24239,322,322,26083,322,24034,26093},
-	{ 0, 9,26108,322,322,26111,322,26126,26130},
-	{ 0, 10,22760,322,322,26140,322,26148,26152},
-	{ 0, 11,22793,322,322,26157,322,26167,26171},
-	{ 0, 12,26189,322,322,26192,322,26198,26202},
-	{ 0, 13,26217,322,322,26220,322,26231,26235},
-	{ 0, 14,26255,322,322,26258,322,26281,26285},
-	{ 0, 15,26321,322,322,26324,322,26333,26337},
-	{ 0, 16,26353,322,322,26356,322,26367,26371},
-	{ 0, 17,22304,322,322,26387,322,26148,26152},
-	{ 0, 18,26395,322,322,26398,322,26411,26415},
-	{ 0, 19,19363,322,322,26431,322,26440,26444},
-	{ 0, 20,24738,322,322,26462,322,26470,26474},
-	{ 0, 21,26489,322,322,26492,322,26500,26504},
-	{ 0, 22,26518,322,322,26521,322,26411,26415},
-	{ 0, 23,26527,322,322,26530,322,26538,26542},
-	{ 0, 24,26558,322,322,26561,322,26568,26572},
-	{ 0, 25,24892,322,322,26586,322,26594,26598},
-	{ 0, 26,20301,322,322,26608,322,26615,26619},
-	{ 0, 27,26634,322,322,26637,322,26645,26649},
-	{ 0, 28,26665,322,322,26668,322,26682,26686},
-	{ 0, 29,26702,322,322,26705,322,26714,26718},
-	{ 0, 30,20913,322,322,26733,322,26741,26745},
-	{ 0, 31,26763,322,322,26766,322,26773,26777},
-	{ 0, 32,22886,322,322,26791,322,26798,26802},
-	{ 0, 33,26818,322,322,26821,322,26167,26171},
-	{ 0, 34,26835,322,322,26838,322,26871,26875},
-	{ 0, 35,26901,322,322,26904,322,26929,26933},
-	{ 0, 36,26948,322,322,26951,322,26929,26933},
-	{ 0, 37,11094,322,322,26957,322,26969,26973},
-	{ 0, 38,26985,322,322,26988,322,26411,26415},
-	{ 0, 39,27003,322,322,27006,322,27019,27023},
-	{ 0, 40,24519,322,322,27042,322,27048,27052},
-	{ 0, 41,27065,322,322,27068,322,26929,26933},
-	{ 0, 42,11173,322,322,27077,322,27083,27087},
-	{ 0, 43,23982,322,322,27109,322,27118,27122},
-	{ 0, 44,23410,322,322,27137,322,17428,27148},
-	{ 0, 45,27166,322,322,27169,322,27174,27178},
-	{ 0, 46,27189,322,322,27192,322,27203,27207},
-	{ 0, 47,27225,322,322,27228,322,26167,26171},
-	{ 0, 48,27245,322,322,27248,322,27255,27259},
-	{ 0, 49,19514,322,322,27272,322,27287,27291},
-	{ 0, 50,4135,322,322,27313,322,26148,26152},
-	{ 0, 51,27321,322,322,27324,322,27333,27337},
-	{ 0, 52,19556,322,322,27352,322,27360,27364},
-	{ 0, 53,27377,322,322,27380,322,25908,25912},
-	{ 0, 54,23767,322,322,27389,322,27408,27412},
-	{ 0, 55,23240,322,322,27427,322,27435,27439},
-	{ 0, 56,24379,322,322,27454,322,27462,27466},
-	{ 0, 57,21011,322,322,27480,322,27488,27492},
-	{ 0, 58,22624,322,322,27507,322,27513,27517},
-	{ 0, 59,27532,322,322,27535,322,27550,27554},
-	{ 0, 60,27570,322,322,27573,322,27581,27585},
-	{ 0, 61,19406,322,322,27600,322,26148,26152},
-	{ 0, 62,27606,322,322,27609,322,27618,27622},
-	{ 0, 63,19731,322,322,27637,322,26148,26152},
-	{ 0, 64,27645,322,322,27648,322,27653,27657},
-	{ 0, 65,27669,322,322,27672,322,27689,27693},
-	{ 0, 66,27716,322,322,27719,322,26126,26130},
-	{ 0, 67,21534,322,322,27730,322,27360,27364},
-	{ 0, 68,19775,322,322,27744,322,26148,26152},
-	{ 0, 69,27751,322,322,27754,322,26929,26933},
-	{ 0, 70,22204,322,322,27760,322,27775,27779},
-	{ 0, 71,27802,322,322,27805,322,25908,25912},
-	{ 0, 72,27813,322,322,27816,322,27824,27828},
-	{ 0, 73,27842,322,322,27845,322,26148,26152},
-	{ 0, 74,27859,322,322,27862,322,27868,27872},
-	{ 0, 75,27883,322,322,27886,322,27896,27900},
-	{ 0, 76,27916,322,322,27919,322,27360,27364},
-	{ 0, 77,27929,322,322,27932,322,27939,27943},
-	{ 0, 78,27957,322,322,27960,322,27967,27971},
-	{ 0, 79,27984,322,322,27987,322,26148,26152},
-	{ 0, 80,27998,322,322,28001,322,26929,26933},
-	{ 0, 81,19657,322,322,28019,322,26148,26152},
-	{ 0, 82,23128,322,322,28026,322,28036,28040},
-	{ 0, 83,28058,322,322,28061,322,26126,26130},
-	{ 0, 84,28066,322,322,28069,322,28076,28080},
-	{ 0, 85,22708,322,322,28094,322,28118,28122},
-	{ 0, 86,28139,322,322,28142,322,26167,26171},
-	{ 0, 87,25002,322,322,28176,322,28185,28189},
-	{ 0, 88,20453,322,322,28205,322,28213,28217},
-	{ 0, 89,19876,322,322,28231,322,28239,28243},
-	{ 0, 90,20778,322,322,28260,322,28270,28274},
-	{ 0, 91,23554,322,322,28292,322,26148,26152},
-	{ 0, 92,19824,322,322,28300,322,28307,28311},
-	{ 0, 93,21588,322,322,28330,322,28336,28340},
-	{ 0, 94,28353,322,322,28356,322,26126,26130},
-	{ 0, 95,22079,322,322,28387,322,28392,28396},
-	{ 0, 96,21157,322,322,28408,322,28413,28417},
-	{ 0, 97,19925,322,322,28430,322,28438,28442},
-	{ 0, 98,19968,322,322,28458,322,26148,26152},
-	{ 0, 99,28464,322,322,28467,322,28475,28479},
-	{ 0, 100,24142,322,322,28495,322,28502,28506},
-	{ 0, 101,20013,322,322,28522,322,28528,28532},
-	{ 0, 102,21631,322,322,28545,322,28551,28555},
-	{ 0, 103,28571,322,322,28574,322,28585,28589},
-	{ 0, 104,28603,322,322,28606,322,28615,28619},
-	{ 0, 105,28634,322,322,28637,322,26167,26171},
-	{ 0, 106,28646,322,322,28649,322,28657,28661},
-	{ 0, 107,28674,322,322,28677,322,25908,25912},
-	{ 0, 108,28699,322,322,28702,322,28714,28718},
-	{ 0, 109,20068,322,322,28735,322,28747,28751},
-	{ 0, 110,24438,322,322,28768,322,28775,28779},
-	{ 0, 111,28793,322,322,28796,322,28811,28815},
-	{ 0, 112,28837,322,322,28840,322,28851,28855},
-	{ 0, 113,28872,322,322,28875,322,28880,28884},
-	{ 0, 114,24297,322,322,28896,322,28904,28908},
-	{ 0, 115,28923,322,322,28926,322,25908,25912},
-	{ 0, 116,28938,322,322,28941,322,26969,26973},
-	{ 0, 117,28955,322,322,28958,322,28968,28972},
-	{ 0, 118,28988,322,322,28991,322,28999,29003},
-	{ 0, 119,21109,322,322,29019,322,29029,29033},
-	{ 0, 120,23047,322,322,29049,322,26148,26152},
-	{ 0, 121,21057,322,322,29060,322,29067,29071},
-	{ 0, 122,22942,322,322,29084,322,29090,29094},
-	{ 0, 123,23523,322,322,29107,322,27550,27554},
-	{ 0, 124,29115,322,322,29118,322,26148,26152},
-	{ 0, 125,7556,322,322,29125,322,29133,29137},
-	{ 0, 126,29150,322,322,29153,322,29164,29168},
-	{ 0, 127,29185,322,322,29188,322,26126,26130},
-	{ 0, 128,21421,322,322,29205,322,29215,29219},
-	{ 0, 129,29236,322,322,29239,322,26411,26415},
-	{ 0, 130,29244,322,322,29247,322,29255,29259},
-	{ 0, 131,29272,322,322,29275,322,29284,29288},
-	{ 0, 132,23319,322,322,29305,322,29324,29328},
-	{ 0, 133,29341,322,322,29344,322,26126,26130},
-	{ 0, 134,29369,322,322,29372,322,26148,26152},
-	{ 0, 135,29383,322,322,29386,322,29397,29401},
-	{ 0, 136,29420,322,322,29423,322,25908,25912},
-	{ 0, 137,29434,322,322,29437,322,29443,29447},
-	{ 0, 138,29460,322,322,29463,322,29473,29477},
-	{ 0, 139,29493,322,322,29496,322,29505,29509},
-	{ 0, 140,29533,322,322,29536,322,29543,29547},
-	{ 0, 141,22253,322,322,29561,322,29568,29572},
-	{ 0, 142,29585,322,322,29588,322,29597,29601},
-	{ 0, 143,29619,322,322,29622,322,29633,29637},
-	{ 0, 144,29656,322,322,29659,322,29673,29677},
-	{ 0, 145,29687,322,322,29690,322,26411,26415},
-	{ 0, 146,29696,322,322,29699,322,26167,26171},
-	{ 0, 147,29714,322,322,29717,322,29725,29729},
-	{ 0, 148,25056,322,322,29744,322,29754,29758},
-	{ 0, 149,20120,322,322,29781,322,26148,26152},
-	{ 0, 150,20211,322,322,29793,322,26682,26686},
-	{ 0, 151,29800,322,322,29803,322,29809,29813},
-	{ 0, 152,29828,322,322,29831,322,26167,26171},
-	{ 0, 153,29837,322,322,29840,322,27019,27023},
-	{ 0, 154,23354,322,322,29845,322,27019,27023},
-	{ 0, 155,23820,322,322,29857,322,29862,29866},
-	{ 0, 156,23603,322,322,29876,322,29883,29887},
-	{ 0, 157,24083,322,322,29905,322,29910,29914},
-	{ 0, 158,29933,322,322,29936,322,29673,29677},
-	{ 0, 159,29953,322,322,29956,322,29973,29977},
-	{ 0, 160,24473,322,322,29999,322,17536,30011},
-	{ 0, 161,30027,322,322,30030,322,30039,30043},
-	{ 0, 162,20252,322,322,30058,322,30065,30069},
-	{ 0, 163,447,322,322,30082,322,26148,26152},
-	{ 0, 164,30108,322,322,30111,322,27019,27023},
-	{ 0, 165,25114,322,322,30120,322,26126,26130},
-	{ 0, 166,22526,322,322,30132,322,26148,26152},
-	{ 0, 167,30141,322,322,30144,322,26126,26130},
-	{ 0, 168,24790,322,322,30150,322,30159,30163},
-	{ 0, 169,24842,322,322,30180,322,30186,30190},
-	{ 0, 170,30202,322,322,30205,322,26148,26152},
-	{ 0, 171,20349,322,322,30214,322,30222,30226},
-	{ 0, 172,20405,322,322,30239,322,30246,30250},
-	{ 0, 173,30276,322,322,30279,322,30286,30290},
-	{ 0, 174,11091,322,322,30304,322,30317,30321},
-	{ 0, 175,30333,322,322,30336,322,30352,30356},
-	{ 0, 176,30379,322,322,30382,322,30393,30397},
-	{ 0, 177,30414,322,322,30417,322,30423,30427},
-	{ 0, 178,20606,322,322,30442,322,30449,30453},
-	{ 0, 179,22994,322,322,30467,322,30477,30481},
-	{ 0, 180,30498,322,322,30501,322,30514,30518},
-	{ 0, 181,20969,322,322,30537,322,17306,30546},
-	{ 0, 182,30561,322,322,30564,322,26682,26686},
-	{ 0, 183,20514,322,322,30587,322,30596,30600},
-	{ 0, 184,30614,322,322,30617,322,30630,30634},
-	{ 0, 185,30653,322,322,30656,322,26148,26152},
-	{ 0, 186,30667,322,322,30670,322,26411,26415},
-	{ 0, 187,30678,322,322,30681,322,30689,30693},
-	{ 0, 188,30709,322,322,30712,322,30721,30725},
-	{ 0, 189,30742,322,322,30745,322,30767,30771},
-	{ 0, 190,24950,322,322,30799,322,17580,30811},
-	{ 0, 191,24038,322,322,30829,322,30835,30839},
-	{ 0, 192,30852,322,322,30855,322,30865,30869},
-	{ 0, 193,30889,322,322,30892,322,26126,26130},
-	{ 0, 194,30917,322,322,30920,322,26929,26933},
-	{ 0, 195,30925,322,322,30928,322,26148,26152},
-	{ 0, 196,30956,322,322,30959,322,26411,26415},
-	{ 0, 197,20671,322,322,30964,322,30973,30977},
-	{ 0, 198,30987,322,322,30990,322,31001,31005},
-	{ 0, 199,31023,322,322,31026,322,27019,27023},
-	{ 0, 200,17292,322,322,31034,322,26126,26130},
-	{ 0, 201,31046,322,322,31049,322,31062,31066},
-	{ 0, 202,23659,322,322,31085,322,31093,31097},
-	{ 0, 203,31112,322,322,31115,322,31121,31125},
-	{ 0, 204,20717,322,322,31140,322,31147,31151},
-	{ 0, 205,24185,322,322,31164,322,31184,31188},
-	{ 0, 206,31215,322,322,31218,322,26167,26171},
-	{ 0, 207,19452,322,322,31225,322,31232,31236},
-	{ 0, 208,31254,322,322,31257,322,31266,31270},
-	{ 0, 209,20845,322,322,31289,322,31297,31301},
-	{ 0, 210,31319,322,322,31322,322,31329,31333},
-	{ 0, 211,31350,322,322,31353,322,26126,26130},
-	{ 0, 212,19690,322,322,31390,322,26126,26130},
-	{ 0, 213,24676,322,322,31404,322,31412,31416},
-	{ 0, 214,31438,322,322,31441,322,31452,31456},
-	{ 0, 215,31471,322,322,31474,322,26148,26152},
-	{ 0, 216,31482,322,322,31485,322,25908,25912},
-	{ 0, 217,23874,322,322,31518,322,31528,31532},
-	{ 0, 218,31551,322,322,31554,322,26126,26130},
-	{ 0, 219,1698,322,322,31577,322,26126,26130},
-	{ 0, 220,21215,322,322,31597,322,31605,31609},
-	{ 0, 221,31625,322,322,31628,322,31636,31640},
-	{ 0, 222,31653,322,322,31656,322,29673,29677},
-	{ 0, 223,31674,322,322,31677,322,31683,31687},
-	{ 0, 224,23930,322,322,31706,322,31712,31716},
-	{ 0, 225,31728,322,322,31731,322,26148,26152},
-	{ 0, 226,31739,322,322,31742,322,31753,31757},
-	{ 0, 227,21480,322,322,31781,322,31794,31798},
-	{ 0, 228,31817,322,322,31820,322,31827,31831},
-	{ 0, 229,24329,322,322,31846,322,31855,31859}
+	{ 0, 0,24529,322,322,25702,322,25723,25727},
+	{ 0, 1,25755,322,322,25758,322,25770,25774},
+	{ 0, 2,25782,322,322,25785,322,25805,25809},
+	{ 0, 3,25831,322,322,25834,322,25805,25809},
+	{ 0, 4,20508,322,322,25843,322,25851,25855},
+	{ 0, 5,444,322,322,25868,322,25876,25880},
+	{ 0, 6,25894,322,322,25897,322,25918,25922},
+	{ 0, 7,25951,322,322,25954,322,25961,25965},
+	{ 0, 8,24142,322,322,25980,322,23980,25990},
+	{ 0, 9,26005,322,322,26008,322,26023,26027},
+	{ 0, 10,22706,322,322,26037,322,26045,26049},
+	{ 0, 11,22739,322,322,26054,322,26064,26068},
+	{ 0, 12,26086,322,322,26089,322,26095,26099},
+	{ 0, 13,26114,322,322,26117,322,26128,26132},
+	{ 0, 14,26152,322,322,26155,322,26178,26182},
+	{ 0, 15,26218,322,322,26221,322,26230,26234},
+	{ 0, 16,26250,322,322,26253,322,26264,26268},
+	{ 0, 17,22250,322,322,26284,322,26045,26049},
+	{ 0, 18,26292,322,322,26295,322,26308,26312},
+	{ 0, 19,19309,322,322,26328,322,26337,26341},
+	{ 0, 20,24641,322,322,26359,322,26367,26371},
+	{ 0, 21,26386,322,322,26389,322,26397,26401},
+	{ 0, 22,26415,322,322,26418,322,26308,26312},
+	{ 0, 23,26424,322,322,26427,322,26435,26439},
+	{ 0, 24,26455,322,322,26458,322,26465,26469},
+	{ 0, 25,24795,322,322,26483,322,26491,26495},
+	{ 0, 26,20247,322,322,26505,322,26512,26516},
+	{ 0, 27,26531,322,322,26534,322,26542,26546},
+	{ 0, 28,26562,322,322,26565,322,26579,26583},
+	{ 0, 29,26599,322,322,26602,322,26611,26615},
+	{ 0, 30,20859,322,322,26630,322,26638,26642},
+	{ 0, 31,26660,322,322,26663,322,26670,26674},
+	{ 0, 32,22832,322,322,26688,322,26695,26699},
+	{ 0, 33,26715,322,322,26718,322,26064,26068},
+	{ 0, 34,26732,322,322,26735,322,26768,26772},
+	{ 0, 35,26798,322,322,26801,322,26826,26830},
+	{ 0, 36,26845,322,322,26848,322,26826,26830},
+	{ 0, 37,11094,322,322,26854,322,26866,26870},
+	{ 0, 38,26882,322,322,26885,322,26308,26312},
+	{ 0, 39,26900,322,322,26903,322,26916,26920},
+	{ 0, 40,24422,322,322,26939,322,26945,26949},
+	{ 0, 41,26962,322,322,26965,322,26826,26830},
+	{ 0, 42,11173,322,322,26974,322,26980,26984},
+	{ 0, 43,23928,322,322,27006,322,27015,27019},
+	{ 0, 44,23356,322,322,27034,322,17378,27045},
+	{ 0, 45,27063,322,322,27066,322,27071,27075},
+	{ 0, 46,27086,322,322,27089,322,27100,27104},
+	{ 0, 47,27122,322,322,27125,322,26064,26068},
+	{ 0, 48,27142,322,322,27145,322,27152,27156},
+	{ 0, 49,19460,322,322,27169,322,27184,27188},
+	{ 0, 50,4135,322,322,27210,322,26045,26049},
+	{ 0, 51,27218,322,322,27221,322,27230,27234},
+	{ 0, 52,19502,322,322,27249,322,27257,27261},
+	{ 0, 53,27274,322,322,27277,322,25805,25809},
+	{ 0, 54,23713,322,322,27286,322,27305,27309},
+	{ 0, 55,23186,322,322,27324,322,27332,27336},
+	{ 0, 56,24282,322,322,27351,322,27359,27363},
+	{ 0, 57,20957,322,322,27377,322,27385,27389},
+	{ 0, 58,22570,322,322,27404,322,27410,27414},
+	{ 0, 59,27429,322,322,27432,322,27447,27451},
+	{ 0, 60,27467,322,322,27470,322,27478,27482},
+	{ 0, 61,19352,322,322,27497,322,26045,26049},
+	{ 0, 62,27503,322,322,27506,322,27515,27519},
+	{ 0, 63,19677,322,322,27534,322,26045,26049},
+	{ 0, 64,27542,322,322,27545,322,27550,27554},
+	{ 0, 65,27566,322,322,27569,322,27586,27590},
+	{ 0, 66,27613,322,322,27616,322,26023,26027},
+	{ 0, 67,21480,322,322,27627,322,27257,27261},
+	{ 0, 68,19721,322,322,27641,322,26045,26049},
+	{ 0, 69,27648,322,322,27651,322,26826,26830},
+	{ 0, 70,22150,322,322,27657,322,27672,27676},
+	{ 0, 71,27699,322,322,27702,322,25805,25809},
+	{ 0, 72,27710,322,322,27713,322,27721,27725},
+	{ 0, 73,27739,322,322,27742,322,26045,26049},
+	{ 0, 74,27756,322,322,27759,322,27765,27769},
+	{ 0, 75,27780,322,322,27783,322,27793,27797},
+	{ 0, 76,27813,322,322,27816,322,27257,27261},
+	{ 0, 77,27826,322,322,27829,322,27836,27840},
+	{ 0, 78,27854,322,322,27857,322,27864,27868},
+	{ 0, 79,27881,322,322,27884,322,26045,26049},
+	{ 0, 80,27895,322,322,27898,322,26826,26830},
+	{ 0, 81,19603,322,322,27916,322,26045,26049},
+	{ 0, 82,23074,322,322,27923,322,27933,27937},
+	{ 0, 83,27955,322,322,27958,322,26023,26027},
+	{ 0, 84,27963,322,322,27966,322,27973,27977},
+	{ 0, 85,22654,322,322,27991,322,28015,28019},
+	{ 0, 86,28036,322,322,28039,322,26064,26068},
+	{ 0, 87,24905,322,322,28073,322,28082,28086},
+	{ 0, 88,20399,322,322,28102,322,28110,28114},
+	{ 0, 89,19822,322,322,28128,322,28136,28140},
+	{ 0, 90,20724,322,322,28157,322,28167,28171},
+	{ 0, 91,23500,322,322,28189,322,26045,26049},
+	{ 0, 92,19770,322,322,28197,322,28204,28208},
+	{ 0, 93,21534,322,322,28227,322,28233,28237},
+	{ 0, 94,28250,322,322,28253,322,26023,26027},
+	{ 0, 95,22025,322,322,28284,322,28289,28293},
+	{ 0, 96,21103,322,322,28305,322,28310,28314},
+	{ 0, 97,19871,322,322,28327,322,28335,28339},
+	{ 0, 98,19914,322,322,28355,322,26045,26049},
+	{ 0, 99,28361,322,322,28364,322,28372,28376},
+	{ 0, 100,24088,322,322,28392,322,28399,28403},
+	{ 0, 101,19959,322,322,28419,322,28425,28429},
+	{ 0, 102,21577,322,322,28442,322,28448,28452},
+	{ 0, 103,28468,322,322,28471,322,28482,28486},
+	{ 0, 104,28500,322,322,28503,322,28512,28516},
+	{ 0, 105,28531,322,322,28534,322,26064,26068},
+	{ 0, 106,28543,322,322,28546,322,28554,28558},
+	{ 0, 107,28571,322,322,28574,322,25805,25809},
+	{ 0, 108,28596,322,322,28599,322,28611,28615},
+	{ 0, 109,20014,322,322,28632,322,28644,28648},
+	{ 0, 110,24341,322,322,28665,322,28672,28676},
+	{ 0, 111,28690,322,322,28693,322,28708,28712},
+	{ 0, 112,28734,322,322,28737,322,28748,28752},
+	{ 0, 113,28769,322,322,28772,322,28777,28781},
+	{ 0, 114,24200,322,322,28793,322,28801,28805},
+	{ 0, 115,28820,322,322,28823,322,25805,25809},
+	{ 0, 116,28835,322,322,28838,322,26866,26870},
+	{ 0, 117,28852,322,322,28855,322,28865,28869},
+	{ 0, 118,28885,322,322,28888,322,28896,28900},
+	{ 0, 119,21055,322,322,28916,322,28926,28930},
+	{ 0, 120,22993,322,322,28946,322,26045,26049},
+	{ 0, 121,21003,322,322,28957,322,28964,28968},
+	{ 0, 122,22888,322,322,28981,322,28987,28991},
+	{ 0, 123,23469,322,322,29004,322,27447,27451},
+	{ 0, 124,29012,322,322,29015,322,26045,26049},
+	{ 0, 125,7556,322,322,29022,322,29030,29034},
+	{ 0, 126,29047,322,322,29050,322,29061,29065},
+	{ 0, 127,29082,322,322,29085,322,26023,26027},
+	{ 0, 128,21367,322,322,29102,322,29112,29116},
+	{ 0, 129,29133,322,322,29136,322,26308,26312},
+	{ 0, 130,29141,322,322,29144,322,29152,29156},
+	{ 0, 131,29169,322,322,29172,322,29181,29185},
+	{ 0, 132,23265,322,322,29202,322,29221,29225},
+	{ 0, 133,29238,322,322,29241,322,26023,26027},
+	{ 0, 134,29266,322,322,29269,322,26045,26049},
+	{ 0, 135,29280,322,322,29283,322,29294,29298},
+	{ 0, 136,29317,322,322,29320,322,25805,25809},
+	{ 0, 137,29331,322,322,29334,322,29340,29344},
+	{ 0, 138,29357,322,322,29360,322,29370,29374},
+	{ 0, 139,29390,322,322,29393,322,29402,29406},
+	{ 0, 140,29430,322,322,29433,322,29440,29444},
+	{ 0, 141,22199,322,322,29458,322,29465,29469},
+	{ 0, 142,29482,322,322,29485,322,29494,29498},
+	{ 0, 143,29516,322,322,29519,322,29530,29534},
+	{ 0, 144,29553,322,322,29556,322,29570,29574},
+	{ 0, 145,29584,322,322,29587,322,26308,26312},
+	{ 0, 146,29593,322,322,29596,322,26064,26068},
+	{ 0, 147,29611,322,322,29614,322,29622,29626},
+	{ 0, 148,24959,322,322,29641,322,29651,29655},
+	{ 0, 149,20066,322,322,29678,322,26045,26049},
+	{ 0, 150,20157,322,322,29690,322,26579,26583},
+	{ 0, 151,29697,322,322,29700,322,29706,29710},
+	{ 0, 152,29725,322,322,29728,322,26064,26068},
+	{ 0, 153,29734,322,322,29737,322,26916,26920},
+	{ 0, 154,23300,322,322,29742,322,26916,26920},
+	{ 0, 155,23766,322,322,29754,322,29759,29763},
+	{ 0, 156,23549,322,322,29773,322,29780,29784},
+	{ 0, 157,24029,322,322,29802,322,29807,29811},
+	{ 0, 158,29830,322,322,29833,322,29570,29574},
+	{ 0, 159,29850,322,322,29853,322,29870,29874},
+	{ 0, 160,24376,322,322,29896,322,17482,29908},
+	{ 0, 161,29924,322,322,29927,322,29936,29940},
+	{ 0, 162,20198,322,322,29955,322,29962,29966},
+	{ 0, 163,447,322,322,29979,322,26045,26049},
+	{ 0, 164,30005,322,322,30008,322,26916,26920},
+	{ 0, 165,25017,322,322,30017,322,26023,26027},
+	{ 0, 166,22472,322,322,30029,322,26045,26049},
+	{ 0, 167,30038,322,322,30041,322,26023,26027},
+	{ 0, 168,24693,322,322,30047,322,30056,30060},
+	{ 0, 169,24745,322,322,30077,322,30083,30087},
+	{ 0, 170,30099,322,322,30102,322,26045,26049},
+	{ 0, 171,20295,322,322,30111,322,30119,30123},
+	{ 0, 172,20351,322,322,30136,322,30143,30147},
+	{ 0, 173,30173,322,322,30176,322,30183,30187},
+	{ 0, 174,11091,322,322,30201,322,30214,30218},
+	{ 0, 175,30230,322,322,30233,322,30249,30253},
+	{ 0, 176,30276,322,322,30279,322,30290,30294},
+	{ 0, 177,30311,322,322,30314,322,30320,30324},
+	{ 0, 178,20552,322,322,30339,322,30346,30350},
+	{ 0, 179,22940,322,322,30364,322,30374,30378},
+	{ 0, 180,30395,322,322,30398,322,30411,30415},
+	{ 0, 181,20915,322,322,30434,322,17256,30443},
+	{ 0, 182,30458,322,322,30461,322,26579,26583},
+	{ 0, 183,20460,322,322,30484,322,30493,30497},
+	{ 0, 184,30511,322,322,30514,322,30527,30531},
+	{ 0, 185,30550,322,322,30553,322,26045,26049},
+	{ 0, 186,30564,322,322,30567,322,26308,26312},
+	{ 0, 187,30575,322,322,30578,322,30586,30590},
+	{ 0, 188,30606,322,322,30609,322,30618,30622},
+	{ 0, 189,30639,322,322,30642,322,30664,30668},
+	{ 0, 190,24853,322,322,30696,322,17526,30708},
+	{ 0, 191,23984,322,322,30726,322,30732,30736},
+	{ 0, 192,30749,322,322,30752,322,30762,30766},
+	{ 0, 193,30786,322,322,30789,322,26023,26027},
+	{ 0, 194,30814,322,322,30817,322,26826,26830},
+	{ 0, 195,30822,322,322,30825,322,26045,26049},
+	{ 0, 196,30853,322,322,30856,322,26308,26312},
+	{ 0, 197,20617,322,322,30861,322,30870,30874},
+	{ 0, 198,30884,322,322,30887,322,30898,30902},
+	{ 0, 199,30920,322,322,30923,322,26916,26920},
+	{ 0, 200,17242,322,322,30931,322,26023,26027},
+	{ 0, 201,30943,322,322,30946,322,30959,30963},
+	{ 0, 202,23605,322,322,30982,322,30990,30994},
+	{ 0, 203,31009,322,322,31012,322,31018,31022},
+	{ 0, 204,20663,322,322,31037,322,31044,31048},
+	{ 0, 205,31061,322,322,31064,322,31084,31088},
+	{ 0, 206,31115,322,322,31118,322,26064,26068},
+	{ 0, 207,19398,322,322,31125,322,31132,31136},
+	{ 0, 208,31154,322,322,31157,322,31166,31170},
+	{ 0, 209,20791,322,322,31189,322,31197,31201},
+	{ 0, 210,31219,322,322,31222,322,31229,31233},
+	{ 0, 211,31250,322,322,31253,322,26023,26027},
+	{ 0, 212,19636,322,322,31290,322,26023,26027},
+	{ 0, 213,24579,322,322,31304,322,31312,31316},
+	{ 0, 214,31338,322,322,31341,322,31352,31356},
+	{ 0, 215,31371,322,322,31374,322,26045,26049},
+	{ 0, 216,31382,322,322,31385,322,25805,25809},
+	{ 0, 217,23820,322,322,31418,322,31428,31432},
+	{ 0, 218,31451,322,322,31454,322,26023,26027},
+	{ 0, 219,1698,322,322,31477,322,26023,26027},
+	{ 0, 220,21161,322,322,31497,322,31505,31509},
+	{ 0, 221,31525,322,322,31528,322,31536,31540},
+	{ 0, 222,31553,322,322,31556,322,29570,29574},
+	{ 0, 223,31574,322,322,31577,322,31583,31587},
+	{ 0, 224,23876,322,322,31606,322,31612,31616},
+	{ 0, 225,31628,322,322,31631,322,26045,26049},
+	{ 0, 226,31639,322,322,31642,322,31653,31657},
+	{ 0, 227,21426,322,322,31681,322,31694,31698},
+	{ 0, 228,31717,322,322,31720,322,31727,31731},
+	{ 0, 229,24232,322,322,31746,322,31755,31759}
 };
 
 
 static const RegionInfoNameEntry region_name_entries [] = {
-	{24626, 0},
-	{25858, 1},
-	{25885, 2},
-	{25934, 3},
-	{20562, 4},
+	{24529, 0},
+	{25755, 1},
+	{25782, 2},
+	{25831, 3},
+	{20508, 4},
 	{444, 5},
-	{25997, 6},
-	{26054, 7},
-	{24239, 8},
-	{26108, 9},
-	{22760, 10},
-	{22793, 11},
-	{26189, 12},
-	{26217, 13},
-	{26255, 14},
-	{26321, 15},
-	{26353, 16},
-	{22304, 17},
-	{26395, 18},
-	{19363, 19},
-	{24738, 20},
-	{26489, 21},
-	{26518, 22},
-	{26527, 23},
-	{26558, 24},
-	{24892, 25},
-	{20301, 26},
-	{26634, 27},
-	{26665, 28},
-	{26702, 29},
-	{20913, 30},
-	{26763, 31},
-	{22886, 32},
-	{26818, 33},
-	{26835, 34},
-	{26901, 35},
-	{26948, 36},
+	{25894, 6},
+	{25951, 7},
+	{24142, 8},
+	{26005, 9},
+	{22706, 10},
+	{22739, 11},
+	{26086, 12},
+	{26114, 13},
+	{26152, 14},
+	{26218, 15},
+	{26250, 16},
+	{22250, 17},
+	{26292, 18},
+	{19309, 19},
+	{24641, 20},
+	{26386, 21},
+	{26415, 22},
+	{26424, 23},
+	{26455, 24},
+	{24795, 25},
+	{20247, 26},
+	{26531, 27},
+	{26562, 28},
+	{26599, 29},
+	{20859, 30},
+	{26660, 31},
+	{22832, 32},
+	{26715, 33},
+	{26732, 34},
+	{26798, 35},
+	{26845, 36},
 	{11094, 37},
-	{26985, 38},
-	{27003, 39},
-	{24519, 40},
-	{27065, 41},
+	{26882, 38},
+	{26900, 39},
+	{24422, 40},
+	{26962, 41},
 	{11173, 42},
-	{23982, 43},
-	{23410, 44},
-	{27166, 45},
-	{27189, 46},
-	{27225, 47},
-	{27245, 48},
-	{19514, 49},
+	{23928, 43},
+	{23356, 44},
+	{27063, 45},
+	{27086, 46},
+	{27122, 47},
+	{27142, 48},
+	{19460, 49},
 	{4135, 50},
-	{27321, 51},
-	{19556, 52},
-	{27377, 53},
-	{23767, 54},
-	{23240, 55},
-	{24379, 56},
-	{21011, 57},
-	{22624, 58},
-	{27532, 59},
-	{27570, 60},
-	{19406, 61},
-	{27606, 62},
-	{19731, 63},
-	{27645, 64},
-	{27669, 65},
-	{27716, 66},
-	{21534, 67},
-	{19775, 68},
-	{27751, 69},
-	{22204, 70},
-	{27802, 71},
-	{27813, 72},
-	{27842, 73},
-	{27859, 74},
-	{27883, 75},
-	{27916, 76},
-	{27929, 77},
-	{27957, 78},
-	{27984, 79},
-	{27998, 80},
-	{19657, 81},
-	{23128, 82},
-	{28058, 83},
-	{28066, 84},
-	{22708, 85},
-	{28139, 86},
-	{25002, 87},
-	{20453, 88},
-	{19876, 89},
-	{20778, 90},
-	{23554, 91},
-	{19824, 92},
-	{21588, 93},
-	{28353, 94},
-	{22079, 95},
-	{21157, 96},
-	{19925, 97},
-	{19968, 98},
-	{28464, 99},
-	{24142, 100},
-	{20013, 101},
-	{21631, 102},
-	{28571, 103},
-	{28603, 104},
-	{28634, 105},
-	{28646, 106},
-	{28674, 107},
-	{28699, 108},
-	{20068, 109},
-	{24438, 110},
-	{28793, 111},
-	{28837, 112},
-	{28872, 113},
-	{24297, 114},
-	{28923, 115},
-	{28938, 116},
-	{28955, 117},
-	{28988, 118},
-	{21109, 119},
-	{23047, 120},
-	{21057, 121},
-	{22942, 122},
-	{23523, 123},
-	{29115, 124},
+	{27218, 51},
+	{19502, 52},
+	{27274, 53},
+	{23713, 54},
+	{23186, 55},
+	{24282, 56},
+	{20957, 57},
+	{22570, 58},
+	{27429, 59},
+	{27467, 60},
+	{19352, 61},
+	{27503, 62},
+	{19677, 63},
+	{27542, 64},
+	{27566, 65},
+	{27613, 66},
+	{21480, 67},
+	{19721, 68},
+	{27648, 69},
+	{22150, 70},
+	{27699, 71},
+	{27710, 72},
+	{27739, 73},
+	{27756, 74},
+	{27780, 75},
+	{27813, 76},
+	{27826, 77},
+	{27854, 78},
+	{27881, 79},
+	{27895, 80},
+	{19603, 81},
+	{23074, 82},
+	{27955, 83},
+	{27963, 84},
+	{22654, 85},
+	{28036, 86},
+	{24905, 87},
+	{20399, 88},
+	{19822, 89},
+	{20724, 90},
+	{23500, 91},
+	{19770, 92},
+	{21534, 93},
+	{28250, 94},
+	{22025, 95},
+	{21103, 96},
+	{19871, 97},
+	{19914, 98},
+	{28361, 99},
+	{24088, 100},
+	{19959, 101},
+	{21577, 102},
+	{28468, 103},
+	{28500, 104},
+	{28531, 105},
+	{28543, 106},
+	{28571, 107},
+	{28596, 108},
+	{20014, 109},
+	{24341, 110},
+	{28690, 111},
+	{28734, 112},
+	{28769, 113},
+	{24200, 114},
+	{28820, 115},
+	{28835, 116},
+	{28852, 117},
+	{28885, 118},
+	{21055, 119},
+	{22993, 120},
+	{21003, 121},
+	{22888, 122},
+	{23469, 123},
+	{29012, 124},
 	{7556, 125},
-	{29150, 126},
-	{29185, 127},
-	{21421, 128},
-	{29236, 129},
-	{29244, 130},
-	{29272, 131},
-	{23319, 132},
-	{29341, 133},
-	{29369, 134},
-	{29383, 135},
-	{29420, 136},
-	{29434, 137},
-	{29460, 138},
-	{29493, 139},
-	{29533, 140},
-	{22253, 141},
-	{29585, 142},
-	{29619, 143},
-	{29656, 144},
-	{29687, 145},
-	{29696, 146},
-	{29714, 147},
-	{25056, 148},
-	{20120, 149},
-	{20211, 150},
-	{29800, 151},
-	{29828, 152},
-	{29837, 153},
-	{23354, 154},
-	{23820, 155},
-	{23603, 156},
-	{24083, 157},
-	{29933, 158},
-	{29953, 159},
-	{24473, 160},
-	{30027, 161},
-	{20252, 162},
+	{29047, 126},
+	{29082, 127},
+	{21367, 128},
+	{29133, 129},
+	{29141, 130},
+	{29169, 131},
+	{23265, 132},
+	{29238, 133},
+	{29266, 134},
+	{29280, 135},
+	{29317, 136},
+	{29331, 137},
+	{29357, 138},
+	{29390, 139},
+	{29430, 140},
+	{22199, 141},
+	{29482, 142},
+	{29516, 143},
+	{29553, 144},
+	{29584, 145},
+	{29593, 146},
+	{29611, 147},
+	{24959, 148},
+	{20066, 149},
+	{20157, 150},
+	{29697, 151},
+	{29725, 152},
+	{29734, 153},
+	{23300, 154},
+	{23766, 155},
+	{23549, 156},
+	{24029, 157},
+	{29830, 158},
+	{29850, 159},
+	{24376, 160},
+	{29924, 161},
+	{20198, 162},
 	{447, 163},
-	{30108, 164},
-	{25114, 165},
-	{22526, 166},
-	{30141, 167},
-	{24790, 168},
-	{24842, 169},
-	{30202, 170},
-	{20349, 171},
-	{20405, 172},
-	{30276, 173},
+	{30005, 164},
+	{25017, 165},
+	{22472, 166},
+	{30038, 167},
+	{24693, 168},
+	{24745, 169},
+	{30099, 170},
+	{20295, 171},
+	{20351, 172},
+	{30173, 173},
 	{11091, 174},
-	{30333, 175},
-	{30379, 176},
-	{30414, 177},
-	{20606, 178},
-	{22994, 179},
-	{30498, 180},
-	{20969, 181},
-	{30561, 182},
-	{20514, 183},
-	{30614, 184},
-	{30653, 185},
-	{30667, 186},
-	{30678, 187},
-	{30709, 188},
-	{30742, 189},
-	{24950, 190},
-	{24038, 191},
-	{30852, 192},
-	{30889, 193},
-	{30917, 194},
-	{30925, 195},
-	{30956, 196},
-	{20671, 197},
-	{30987, 198},
-	{31023, 199},
-	{17292, 200},
-	{31046, 201},
-	{23659, 202},
-	{31112, 203},
-	{20717, 204},
-	{24185, 205},
-	{31215, 206},
-	{19452, 207},
-	{31254, 208},
-	{20845, 209},
-	{31319, 210},
-	{31350, 211},
-	{19690, 212},
-	{24676, 213},
-	{31438, 214},
-	{31471, 215},
-	{31482, 216},
-	{23874, 217},
-	{31551, 218},
+	{30230, 175},
+	{30276, 176},
+	{30311, 177},
+	{20552, 178},
+	{22940, 179},
+	{30395, 180},
+	{20915, 181},
+	{30458, 182},
+	{20460, 183},
+	{30511, 184},
+	{30550, 185},
+	{30564, 186},
+	{30575, 187},
+	{30606, 188},
+	{30639, 189},
+	{24853, 190},
+	{23984, 191},
+	{30749, 192},
+	{30786, 193},
+	{30814, 194},
+	{30822, 195},
+	{30853, 196},
+	{20617, 197},
+	{30884, 198},
+	{30920, 199},
+	{17242, 200},
+	{30943, 201},
+	{23605, 202},
+	{31009, 203},
+	{20663, 204},
+	{31061, 205},
+	{31115, 206},
+	{19398, 207},
+	{31154, 208},
+	{20791, 209},
+	{31219, 210},
+	{31250, 211},
+	{19636, 212},
+	{24579, 213},
+	{31338, 214},
+	{31371, 215},
+	{31382, 216},
+	{23820, 217},
+	{31451, 218},
 	{1698, 219},
-	{21215, 220},
-	{31625, 221},
-	{31653, 222},
-	{31674, 223},
-	{23930, 224},
-	{31728, 225},
-	{31739, 226},
-	{21480, 227},
-	{31817, 228},
-	{24329, 229}
+	{21161, 220},
+	{31525, 221},
+	{31553, 222},
+	{31574, 223},
+	{23876, 224},
+	{31628, 225},
+	{31639, 226},
+	{21426, 227},
+	{31717, 228},
+	{24232, 229}
 };
 
 
@@ -2785,8 +2781,6 @@ static const char locale_strings [] = {
 	"\xd8\xaa\xd8\xb4\xd8\xb1\xd9\x8a\xd9\x86 \xd8\xa7\xd9\x84\xd8\xab\xd8\xa7\xd9\x86\xd9\x8a\0"
 	"\xd9\x83\xd8\xa7\xd9\x86\xd9\x88\xd9\x86 \xd8\xa7\xd9\x84\xd8\xa3\xd9\x88\xd9\x84\0"
 	"\xd8\xa3\xd9\x8a\xd8\xa7\xd8\xb1\0"
-	"dddd, dd MMMM yyyy hh:mm:ss tt\0"
-	"dddd, dd MMMM yyyy\0"
 	"dd' de 'MMMM' de 'yyyy hh:mm:ss tt\0"
 	"dd' de 'MMMM' de 'yyyy\0"
 	"dd' de 'MMMM\0"
@@ -2862,7 +2856,6 @@ static const char locale_strings [] = {
 	"\xd9\x84.\xd8\xb3.\xe2\x80\x8f\0"
 	"S/\0"
 	"\xd8\xaf.\xd8\xa3.\xe2\x80\x8f\0"
-	"TT$\0"
 	"\xd9\x84.\xd9\x84.\xe2\x80\x8f\0"
 	"Z$\0"
 	"S/.\0"
@@ -3527,10 +3520,6 @@ static const char locale_strings [] = {
 	"\xd8\xa7\xd9\x84\xd8\xb9\xd8\xb1\xd8\xa8\xd9\x8a\xd8\xa9 (\xd8\xa7\xd9\x84\xd8\xa7\xd8\xb1\xd8\xaf\xd9\x86)\0"
 	"ARJ\0"
 	"JO\0"
-	"en-TT\0"
-	"English (Trinidad and Tobago)\0"
-	"ENT\0"
-	"TT\0"
 	"es-AR\0"
 	"Spanish (Argentina)\0"
 	"espa\xc3\xb1ol (Argentina)\0"
@@ -3648,7 +3637,6 @@ static const char locale_strings [] = {
 	"en-ie\0"
 	"en-nz\0"
 	"en-ph\0"
-	"en-tt\0"
 	"en-us\0"
 	"en-za\0"
 	"en-zw\0"
@@ -4332,6 +4320,7 @@ static const char locale_strings [] = {
 	"Turkey\0"
 	"TRL\0"
 	"Turkish Lira\0"
+	"TT\0"
 	"Trinidad and Tobago\0"
 	"TTD\0"
 	"Trinidad and Tobago Dollar\0"
diff --git a/mono/metadata/generic-sharing.c b/mono/metadata/generic-sharing.c
index 8741cbb..d206d77 100644
--- a/mono/metadata/generic-sharing.c
+++ b/mono/metadata/generic-sharing.c
@@ -775,12 +775,12 @@ instantiate_other_info (MonoDomain *domain, MonoRuntimeGenericContextOtherInfoTe
 	case MONO_RGCTX_INFO_METHOD:
 		return data;
 	case MONO_RGCTX_INFO_GENERIC_METHOD_CODE:
-		return mono_create_ftnptr (mono_domain_get (),
-				mono_runtime_create_jump_trampoline (mono_domain_get (), data, TRUE));
+		/*
+		 * We can't create a jump trampoline here, as it cannot be patched.
+		 */
+		return mono_create_ftnptr (mono_domain_get (), mono_compile_method (data));
 	case MONO_RGCTX_INFO_REMOTING_INVOKE_WITH_CHECK:
-		return mono_create_ftnptr (mono_domain_get (),
-				mono_runtime_create_jump_trampoline (mono_domain_get (),
-						mono_marshal_get_remoting_invoke_with_check (data), TRUE));
+		return mono_create_ftnptr (mono_domain_get (), mono_compile_method (mono_marshal_get_remoting_invoke_with_check (data)));
 	case MONO_RGCTX_INFO_CLASS_FIELD:
 		return data;
 	case MONO_RGCTX_INFO_METHOD_RGCTX: {
diff --git a/mono/metadata/icall.c b/mono/metadata/icall.c
index b6bc92f..d540d27 100644
--- a/mono/metadata/icall.c
+++ b/mono/metadata/icall.c
@@ -210,6 +210,11 @@ ves_icall_System_Array_SetValueImpl (MonoArray *this, MonoObject *value, guint32
 	ea = (gpointer*)((char*)this->vector + (pos * esize));
 	va = (gpointer*)((char*)value + sizeof (MonoObject));
 
+	if (mono_class_is_nullable (ec)) {
+		mono_nullable_init ((guint8*)ea, value, ec);
+		return;
+	}
+
 	if (!value) {
 		memset (ea, 0,  esize);
 		return;
@@ -2942,7 +2947,9 @@ ves_icall_MonoMethod_GetGenericMethodDefinition (MonoReflectionMethod *method)
 
 	if (imethod->context.class_inst) {
 		MonoClass *klass = ((MonoMethod *) imethod)->klass;
-		result = mono_class_inflate_generic_method_full (result, klass, mono_class_get_context (klass));
+		/*Generic methods gets the context of the GTD.*/
+		if (mono_class_get_context (klass))
+			result = mono_class_inflate_generic_method_full (result, klass, mono_class_get_context (klass));
 	}
 
 	return mono_method_get_object (mono_object_domain (method), result, NULL);
diff --git a/mono/metadata/image.c b/mono/metadata/image.c
index f3afb2f..c6bc78b 100644
--- a/mono/metadata/image.c
+++ b/mono/metadata/image.c
@@ -1017,7 +1017,7 @@ register_image (MonoImage *image)
 }
 
 MonoImage *
-mono_image_open_from_data_full (char *data, guint32 data_len, gboolean need_copy, MonoImageOpenStatus *status, gboolean refonly)
+mono_image_open_from_data_with_name (char *data, guint32 data_len, gboolean need_copy, MonoImageOpenStatus *status, gboolean refonly, const char *name)
 {
 	MonoCLIImageInfo *iinfo;
 	MonoImage *image;
@@ -1043,7 +1043,7 @@ mono_image_open_from_data_full (char *data, guint32 data_len, gboolean need_copy
 	image->raw_data = datac;
 	image->raw_data_len = data_len;
 	image->raw_data_allocated = need_copy;
-	image->name = g_strdup_printf ("data-%p", datac);
+	image->name = (name == NULL) ? g_strdup_printf ("data-%p", datac) : g_strdup(name);
 	iinfo = g_new0 (MonoCLIImageInfo, 1);
 	image->image_info = iinfo;
 	image->ref_only = refonly;
@@ -1056,6 +1056,12 @@ mono_image_open_from_data_full (char *data, guint32 data_len, gboolean need_copy
 }
 
 MonoImage *
+mono_image_open_from_data_full (char *data, guint32 data_len, gboolean need_copy, MonoImageOpenStatus *status, gboolean refonly)
+{
+  return mono_image_open_from_data_with_name (data, data_len, need_copy, status, refonly, NULL);
+}
+
+MonoImage *
 mono_image_open_from_data (char *data, guint32 data_len, gboolean need_copy, MonoImageOpenStatus *status)
 {
 	return mono_image_open_from_data_full (data, data_len, need_copy, status, FALSE);
diff --git a/mono/metadata/image.h b/mono/metadata/image.h
index 4c9d5ee..ff09a7d 100644
--- a/mono/metadata/image.h
+++ b/mono/metadata/image.h
@@ -45,6 +45,8 @@ MonoImage    *mono_image_open_from_data (char *data, guint32 data_len, gboolean
                                          MonoImageOpenStatus *status);
 MonoImage    *mono_image_open_from_data_full (char *data, guint32 data_len, gboolean need_copy,
                                          MonoImageOpenStatus *status, gboolean refonly);
+MonoImage    *mono_image_open_from_data_with_name (char *data, guint32 data_len, gboolean need_copy,
+                                                   MonoImageOpenStatus *status, gboolean refonly, const char *name);
 void          mono_image_fixup_vtable (MonoImage *image);
 MonoImage    *mono_image_loaded   (const char *name);
 MonoImage    *mono_image_loaded_full   (const char *name, gboolean refonly);
diff --git a/mono/metadata/locales.c b/mono/metadata/locales.c
index 79fd027..4bfe50b 100644
--- a/mono/metadata/locales.c
+++ b/mono/metadata/locales.c
@@ -300,7 +300,10 @@ construct_culture_from_specific_name (MonoCultureInfo *ci, gchar *name)
 	if (entry->lcid != entry->specific_lcid)
 		entry = culture_info_entry_from_lcid (entry->specific_lcid);
 
-	return construct_culture (ci, entry);
+	if (entry)
+		return construct_culture (ci, entry);
+	else
+		return FALSE;
 }
 
 static const CultureInfoEntry*
diff --git a/mono/metadata/marshal.c b/mono/metadata/marshal.c
index b4a9669..17f661e 100644
--- a/mono/metadata/marshal.c
+++ b/mono/metadata/marshal.c
@@ -5308,6 +5308,8 @@ handle_enum:
 	mono_mb_emit_ldloc (mb, 0);
 	mono_mb_emit_byte (mb, CEE_RET);
 
+	g_free (tmp_nullable_locals);
+
 	if (need_direct_wrapper) {
 		res = mono_mb_create_and_cache (cache, method, mb, csig, sig->param_count + 16);
 		res->skip_visibility = 1;
@@ -6404,10 +6406,6 @@ emit_marshal_vtype (EmitMarshalContext *m, int argnum, MonoType *t,
 
 	switch (action) {
 	case MARSHAL_ACTION_CONV_IN:
-		if (((klass->flags & TYPE_ATTRIBUTE_LAYOUT_MASK) == TYPE_ATTRIBUTE_EXPLICIT_LAYOUT) ||
-			klass->blittable || klass->enumtype)
-			break;
-
 		if (klass == date_time_class) {
 			/* Convert it to an OLE DATE type */
 			static MonoMethod *to_oadate;
@@ -6427,6 +6425,10 @@ emit_marshal_vtype (EmitMarshalContext *m, int argnum, MonoType *t,
 			break;
 		}
 
+		if (((klass->flags & TYPE_ATTRIBUTE_LAYOUT_MASK) == TYPE_ATTRIBUTE_EXPLICIT_LAYOUT) ||
+			klass->blittable || klass->enumtype)
+			break;
+
 		conv_arg = mono_mb_add_local (mb, &mono_defaults.int_class->byval_arg);
 			
 		/* store the address of the source into local variable 0 */
@@ -6496,6 +6498,26 @@ emit_marshal_vtype (EmitMarshalContext *m, int argnum, MonoType *t,
 		break;
 
 	case MARSHAL_ACTION_CONV_OUT:
+		if (klass == date_time_class) {
+			/* Convert from an OLE DATE type */
+			static MonoMethod *from_oadate;
+
+			if (!t->byref)
+				break;
+
+			if (!((t->attrs & PARAM_ATTRIBUTE_IN) && !(t->attrs & PARAM_ATTRIBUTE_OUT))) {
+				if (!from_oadate)
+					from_oadate = mono_class_get_method_from_name (date_time_class, "FromOADate", 1);
+				g_assert (from_oadate);
+
+				mono_mb_emit_ldarg (mb, argnum);
+				mono_mb_emit_ldloc (mb, conv_arg);
+				mono_mb_emit_managed_call (mb, from_oadate, NULL);
+				mono_mb_emit_op (mb, CEE_STOBJ, date_time_class);
+			}
+			break;
+		}
+
 		if (((klass->flags & TYPE_ATTRIBUTE_LAYOUT_MASK) == TYPE_ATTRIBUTE_EXPLICIT_LAYOUT) ||
 			klass->blittable || klass->enumtype)
 			break;
diff --git a/mono/metadata/monitor.c b/mono/metadata/monitor.c
index a9aaf6e..bece0a4 100644
--- a/mono/metadata/monitor.c
+++ b/mono/metadata/monitor.c
@@ -235,6 +235,14 @@ mon_new (gsize id)
 			for (i = 0; i < marray->num_monitors; ++i) {
 				if (marray->monitors [i].data == NULL) {
 					new = &marray->monitors [i];
+					if (new->wait_list) {
+						/* Orphaned events left by aborted threads */
+						while (new->wait_list) {
+							LOCK_DEBUG (g_message (G_GNUC_PRETTY_FUNCTION ": (%d): Closing orphaned event %d", GetCurrentThreadId (), new->wait_list->data));
+							CloseHandle (new->wait_list->data);
+							new->wait_list = g_slist_remove (new->wait_list, new->wait_list->data);
+						}
+					}
 					new->data = monitor_freelist;
 					monitor_freelist = new;
 				}
@@ -1302,7 +1310,14 @@ ves_icall_System_Threading_Monitor_Monitor_wait (MonoObject *obj, guint32 ms)
 	mono_thread_clr_state (thread, ThreadState_WaitSleepJoin);
 	
 	if (mono_thread_interruption_requested ()) {
-		CloseHandle (event);
+		/* 
+		 * Can't remove the event from wait_list, since the monitor is not locked by
+		 * us. So leave it there, mon_new () will delete it when the mon structure
+		 * is placed on the free list.
+		 * FIXME: The caller expects to hold the lock after the wait returns, but it
+		 * doesn't happen in this case:
+		 * http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=97268
+		 */
 		return FALSE;
 	}
 
diff --git a/mono/metadata/object.c b/mono/metadata/object.c
index e9f6a3d..d250175 100644
--- a/mono/metadata/object.c
+++ b/mono/metadata/object.c
@@ -2619,6 +2619,26 @@ mono_vtable_get_static_field_data (MonoVTable *vt)
 	return vt->data;
 }
 
+static guint8*
+mono_field_get_addr (MonoObject *obj, MonoVTable *vt, MonoClassField *field)
+{
+	guint8 *src;
+
+	if (field->type->attrs & FIELD_ATTRIBUTE_STATIC) {
+		if (field->offset == -1) {
+			/* Special static */
+			gpointer addr = g_hash_table_lookup (vt->domain->special_static_fields, field);
+			src = mono_get_special_static_data (GPOINTER_TO_UINT (addr));
+		} else {
+			src = (guint8*)vt->data + field->offset;
+		}
+	} else {
+		src = (guint8*)obj + field->offset;
+	}
+
+	return src;
+}
+
 /**
  * mono_field_get_value:
  * @obj: Object instance
@@ -2719,6 +2739,10 @@ mono_field_get_value_object (MonoDomain *domain, MonoClassField *field, MonoObje
 
 	/* boxed value type */
 	klass = mono_class_from_mono_type (field->type);
+
+	if (mono_class_is_nullable (klass))
+		return mono_nullable_box (mono_field_get_addr (obj, vtable, field), klass);
+
 	o = mono_object_new (domain, klass);
 	v = ((gchar *) o) + sizeof (MonoObject);
 	if (is_static) {
diff --git a/mono/metadata/reflection.c b/mono/metadata/reflection.c
index 7b6eaea..54d5fbd 100644
--- a/mono/metadata/reflection.c
+++ b/mono/metadata/reflection.c
@@ -1629,9 +1629,10 @@ fieldref_encode_signature (MonoDynamicImage *assembly, MonoImage *field_image, M
 	/* encode custom attributes before the type */
 	if (type->num_mods) {
 		for (i = 0; i < type->num_mods; ++i) {
-			if (field_image) {
+			if (field_image && (type->modifiers [i].token & 0xff000000)) {
 				MonoClass *class = mono_class_get (field_image, type->modifiers [i].token);
-				g_assert (class);
+				if (!class)
+					g_error ("Can't lookup custom mod token %08x", type->modifiers [i].token);
 				token = mono_image_typedef_or_ref (assembly, &class->byval_arg);
 			} else {
 				token = type->modifiers [i].token;
@@ -6153,9 +6154,28 @@ mono_type_get_object (MonoDomain *domain, MonoType *type)
 	}
 
 	if (klass->reflection_info && !klass->wastypebuilder) {
+		gboolean is_type_done = TRUE;
+		/* Generic parameters have reflection_info set but they are not finished together with their enclosing type.
+		 * We must ensure that once a type is finished we don't return a GenericTypeParameterBuilder.
+		 * We can't simply close the types as this will interfere with other parts of the generics machinery.
+		*/
+		if (klass->byval_arg.type == MONO_TYPE_MVAR || klass->byval_arg.type == MONO_TYPE_VAR) {
+			MonoGenericParam *gparam = klass->byval_arg.data.generic_param;
+
+			if (gparam->owner && gparam->owner->is_method) {
+				MonoMethod *method = gparam->owner->owner.method;
+				if (method && mono_class_get_generic_type_definition (method->klass)->wastypebuilder)
+					is_type_done = FALSE;
+			} else if (gparam->owner && !gparam->owner->is_method) {
+				MonoClass *klass = gparam->owner->owner.klass;
+				if (klass && mono_class_get_generic_type_definition (klass)->wastypebuilder)
+					is_type_done = FALSE;
+			}
+		} 
+
 		/* g_assert_not_reached (); */
 		/* should this be considered an error condition? */
-		if (!type->byref) {
+		if (is_type_done && !type->byref) {
 			mono_domain_unlock (domain);
 			mono_loader_unlock ();
 			return klass->reflection_info;
@@ -8187,6 +8207,8 @@ mono_custom_attrs_from_param (MonoMethod *method, guint32 param)
 
 		/* Need to copy since it will be freed later */
 		ainfo = aux->param_cattr [param];
+		if (!ainfo)
+			return NULL;
 		size = sizeof (MonoCustomAttrInfo) + sizeof (MonoCustomAttrEntry) * (ainfo->num_attrs - MONO_ZERO_LEN_ARRAY);
 		res = g_malloc0 (size);
 		memcpy (res, ainfo, size);
@@ -10700,13 +10722,14 @@ resolve_object (MonoImage *image, MonoObject *obj, MonoClass **handle_class, Mon
 		sig->explicit_this = helper->call_conv & 64 ? 1 : 0;
 		sig->hasthis = helper->call_conv & 32 ? 1 : 0;
 
-		if (helper->call_conv == 0) /* unmanaged */
+		if (helper->unmanaged_call_conv) { /* unmanaged */
 			sig->call_convention = helper->unmanaged_call_conv - 1;
-		else
-			if (helper->call_conv & 0x02)
-				sig->call_convention = MONO_CALL_VARARG;
-		else
+			sig->pinvoke = TRUE;
+		} else if (helper->call_conv & 0x02) {
+			sig->call_convention = MONO_CALL_VARARG;
+		} else {
 			sig->call_convention = MONO_CALL_DEFAULT;
+		}
 
 		sig->param_count = nargs;
 		/* TODO: Copy type ? */
@@ -10767,6 +10790,33 @@ resolve_object (MonoImage *image, MonoObject *obj, MonoClass **handle_class, Mon
 		result = inflate_mono_method (inflated_klass, m->mb->mhandle, (MonoObject*)m->mb);
 		*handle_class = mono_defaults.methodhandle_class;
 		mono_metadata_free_type (type);
+	} else if (strcmp (obj->vtable->klass->name, "MonoArrayMethod") == 0) {
+		MonoReflectionArrayMethod *m = (MonoReflectionArrayMethod*)obj;
+		MonoType *mtype;
+		MonoClass *klass;
+		MonoMethod *method;
+		gpointer iter;
+		char *name;
+
+		mtype = mono_reflection_type_get_handle (m->parent);
+		klass = mono_class_from_mono_type (mtype);
+
+		/* Find the method */
+
+		name = mono_string_to_utf8 (m->name);
+		iter = NULL;
+		while ((method = mono_class_get_methods (klass, &iter))) {
+			if (!strcmp (method->name, name))
+				break;
+		}
+		g_free (name);
+
+		// FIXME:
+		g_assert (method);
+		// FIXME: Check parameters/return value etc. match
+
+		result = method;
+		*handle_class = mono_defaults.methodhandle_class;
 	} else {
 		g_print (obj->vtable->klass->name);
 		g_assert_not_reached ();
diff --git a/mono/metadata/socket-io.c b/mono/metadata/socket-io.c
index 01b1c04..9e611c8 100644
--- a/mono/metadata/socket-io.c
+++ b/mono/metadata/socket-io.c
@@ -86,6 +86,14 @@
 
 #undef DEBUG
 
+/* 
+ * Some older versions of libc provide IPV6 support without defining the AI_ADDRCONFIG
+ * flag for getaddrinfo.
+ */
+#ifndef AI_ADDRCONFIG
+#define AI_ADDRCONFIG 0
+#endif
+
 static gint32 convert_family(MonoAddressFamily mono_family)
 {
 	gint32 family=-1;
diff --git a/mono/metadata/threadpool.c b/mono/metadata/threadpool.c
index 1b68944..5d65f64 100644
--- a/mono/metadata/threadpool.c
+++ b/mono/metadata/threadpool.c
@@ -1481,12 +1481,17 @@ ves_icall_System_Threading_ThreadPool_GetMinThreads (gint *workerThreads, gint *
 MonoBoolean
 ves_icall_System_Threading_ThreadPool_SetMinThreads (gint workerThreads, gint completionPortThreads)
 {
+	int max_threads;
+	int max_io_threads;
+
 	MONO_ARCH_SAVE_REGS;
 
-	if (workerThreads < 0 || workerThreads > mono_max_worker_threads)
+	max_threads = InterlockedCompareExchange (&mono_max_worker_threads, -1, -1);
+	if (workerThreads <= 0 || workerThreads > max_threads)
 		return FALSE;
 
-	if (completionPortThreads < 0 || completionPortThreads > mono_io_max_worker_threads)
+	max_io_threads = InterlockedCompareExchange (&mono_io_max_worker_threads, -1, -1);
+	if (completionPortThreads <= 0 || completionPortThreads > max_io_threads)
 		return FALSE;
 
 	InterlockedExchange (&mono_min_worker_threads, workerThreads);
@@ -1498,12 +1503,20 @@ ves_icall_System_Threading_ThreadPool_SetMinThreads (gint workerThreads, gint co
 MonoBoolean
 ves_icall_System_Threading_ThreadPool_SetMaxThreads (gint workerThreads, gint completionPortThreads)
 {
+	gint32 min_threads;
+	gint32 min_io_threads;
+	gint32 cpu_count;
+
 	MONO_ARCH_SAVE_REGS;
 
-	if (workerThreads < mono_max_worker_threads)
+	cpu_count = mono_cpu_count ();
+	min_threads = InterlockedCompareExchange (&mono_min_worker_threads, -1, -1);
+	if (workerThreads < min_threads || workerThreads < cpu_count)
 		return FALSE;
 
-	if (completionPortThreads < mono_io_max_worker_threads)
+	/* We don't really have the concept of completion ports. Do we care here? */
+	min_io_threads = InterlockedCompareExchange (&mono_io_min_worker_threads, -1, -1);
+	if (completionPortThreads < min_io_threads || completionPortThreads < cpu_count)
 		return FALSE;
 
 	InterlockedExchange (&mono_max_worker_threads, workerThreads);
diff --git a/mono/mini/ChangeLog b/mono/mini/ChangeLog
index 76f1a09..c555fae 100644
--- a/mono/mini/ChangeLog
+++ b/mono/mini/ChangeLog
@@ -1,3 +1,111 @@
+2010-02-02  Zoltan Varga  <vargaz at gmail.com>
+
+	* mini-trampolines.c (mono_magic_trampoline): Fix a problem where the callsite
+	was not patched if the callee needed an rgctx trampoline.
+
+2010-01-21  Zoltan Varga  <vargaz at gmail.com>
+
+	* exceptions-amd64.c (mono_arch_notify_pending_exc): Avoid a crash if the
+	thread has not fully started yet.
+
+2010-01-17  Zoltan Varga  <vargaz at gmail.com>
+
+	* branch-opts.c (mono_branch_optimize_exception_target): Stop the optimization
+	if a clause is skipped because it uses the exception object, since it could
+	have caught the exception.
+
+	* exceptions.cs: Add a test.
+
+2010-01-16  Zoltan Varga  <vargaz at gmail.com>
+
+	* mini-amd64.c (emit_call_body): Always use near calls when AOTing even if
+	NOMAP32BIT or optimize_for_xen is set.
+
+2010-01-10  Zoltan Varga  <vargaz at gmail.com>
+
+	* method-to-ir.c (mono_emit_method_call_full): Avoid the virt->nonvirt
+	optimization if the called method is gshared and marshalbyref, since gshared
+	methods can' have wrappers. Fixes #569390.
+
+	* generics.cs: Add a test.
+
+2010-01-04  Zoltan Varga  <vargaz at gmail.com>
+
+	* mini-trampolines.c (mono_convert_imt_slot_to_vtable_slot): Call
+	mono_method_get_vtable_slot () instead of accessing imt_method->slot directly,
+	to fix an AOT case.
+
+2009-12-22  Zoltan Varga  <vargaz at gmail.com>
+
+	* aot-runtime.c (decode_klass_ref): Avoid a crash if a decode_klass_ref () call
+	fails. Fixes #566689.
+
+2009-12-17  Zoltan Varga  <vargaz at gmail.com>
+
+	* method-to-ir.c (mono_method_to_ir): Add support for CALLI with unmanaged
+	signatures. Fixes #565143.
+
+	* jit-icalls.c (mono_get_native_calli_wrapper): New JIT icall.
+
+2009-12-11  Zoltan Varga  <vargaz at gmail.com>
+
+	* driver.c: Applied patch from Matt McClellan (matt at mc-c.net). Add a check
+	for 2 parameter sched_setaffinity in older glibc versions. Fixes
+	#564000.
+
+2009-12-03  Zoltan Varga  <vargaz at gmail.com>
+
+	* mini.c (mini_method_compile): Call handle_exception_clauses () in the same
+	place it was called before too.
+
+2009-12-03  Zoltan Varga  <vargaz at gmail.com>
+
+	* mini.c (mini_method_compile): Call handle_exception_clauses earlier so
+	the local optimization passes can take its result into account. Fixes
+	#559876.
+
+	* exceptions.cs: Add a test.
+
+2009-01-24  Steven Munroe  <munroesj at us.ibm.com>
+
+	This patch is contributed under the terms of the MIT/X11 license
+
+        * cpu-ppc64.md (load_memindex): Add loadi8_memindex.
+
+2009-11-30  Zoltan Varga  <vargaz at gmail.com>
+
+	* mini-arm.c (mono_arch_lowering_pass): Fix an assert which is hit when
+	the instruction following an OP_FCOMPARE is optimized away.
+
+2009-11-24  Zoltan Varga  <vargaz at gmail.com>
+
+	* aot-compiler.c: Avoid infinite recursion when generic virtual recursion is
+	encountered.
+
+2009-11-24  Zoltan Varga  <vargaz at gmail.com>
+
+	* cfold.c (mono_constant_fold_ins): Fix a problem in the previous change,
+	OP_SHL_IMM is not 32 bit.
+
+2009-11-23  Zoltan Varga  <vargaz at gmail.com>
+
+	* method-to-ir.c (inline_method): Prevent infinite recursion. Fixes
+	#557606.
+
+	* generics.cs: Add a test.
+
+2009-11-21  Zoltan Varga  <vargaz at gmail.com>
+
+	* cfold.c (mono_constant_fold_ins): Fix constant folding of shr_imm. Fixes
+	#557262.
+
+	* basic.cs: Add a test.
+
+2009-11-20  Zoltan Varga  <vargaz at gmail.com>
+
+	* tramp-ppc.c (mono_arch_create_generic_class_init_trampoline_full): These
+	receive their argument in MONO_ARCH_VTABLE_REG, not in the first argument reg.
+
 2009-11-06  Zoltan Varga  <vargaz at gmail.com>
 
 	* mini-arm.c (handle_thunk): Add a domain argument to control the domain
diff --git a/mono/mini/Makefile.in b/mono/mini/Makefile.in
index 4feee30..a8b8f0a 100644
--- a/mono/mini/Makefile.in
+++ b/mono/mini/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -18,8 +19,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -55,15 +57,30 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" \
 	"$(DESTDIR)$(libmonoincludedir)"
-libLTLIBRARIES_INSTALL = $(INSTALL)
 LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 @INCLUDED_LIBGC_FALSE at am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
@@ -187,7 +204,6 @@ libmono_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 	$(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(libmono_la_LDFLAGS) $(LDFLAGS) -o $@
 @JIT_SUPPORTED_TRUE at am_libmono_la_rpath = -rpath $(libdir)
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
 am_genmdesc_OBJECTS = genmdesc-genmdesc.$(OBJEXT) \
 	genmdesc-helpers.$(OBJEXT)
@@ -217,6 +233,7 @@ monow_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -232,7 +249,6 @@ SOURCES = $(libmono_static_la_SOURCES) \
 DIST_SOURCES = $(am__libmono_static_la_SOURCES_DIST) \
 	$(am__libmono_la_SOURCES_DIST) $(genmdesc_SOURCES) \
 	$(mono_SOURCES) $(am__monow_SOURCES_DIST)
-libmonoincludeHEADERS_INSTALL = $(INSTALL_HEADER)
 HEADERS = $(libmonoinclude_HEADERS)
 ETAGS = etags
 CTAGS = ctags
@@ -327,6 +343,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -730,14 +747,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/mini/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/mini/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/mini/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/mini/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -755,23 +772,28 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+	list2=; for p in $$list; do \
 	  if test -f $$p; then \
-	    f=$(am__strip_dir) \
-	    echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
-	    $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
+	    list2="$$list2 $$p"; \
 	  else :; fi; \
-	done
+	done; \
+	test -z "$$list2" || { \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+	}
 
 uninstall-libLTLIBRARIES:
 	@$(NORMAL_UNINSTALL)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  p=$(am__strip_dir) \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
 	done
 
 clean-libLTLIBRARIES:
@@ -798,38 +820,55 @@ libmono.la: $(libmono_la_OBJECTS) $(libmono_la_DEPENDENCIES)
 install-binPROGRAMS: $(bin_PROGRAMS)
 	@$(NORMAL_INSTALL)
 	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  if test -f $$p \
-	     || test -f $$p1 \
-	  ; then \
-	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
-	  else :; fi; \
-	done
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	for p in $$list; do echo "$$p $$p"; done | \
+	sed 's/$(EXEEXT)$$//' | \
+	while read p p1; do if test -f $$p || test -f $$p1; \
+	  then echo "$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+	sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
+	    else { print "f", $$3 "/" $$4, $$1; } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	    test -z "$$files" || { \
+	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	    } \
+	; done
 
 uninstall-binPROGRAMS:
 	@$(NORMAL_UNINSTALL)
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
-	done
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+	      -e 's/$$/$(EXEEXT)/' `; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(bindir)" && rm -f $$files
 
 clean-binPROGRAMS:
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  echo " rm -f $$p $$f"; \
-	  rm -f $$p $$f ; \
-	done
+	@list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
 
 clean-noinstPROGRAMS:
-	@list='$(noinst_PROGRAMS)'; for p in $$list; do \
-	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  echo " rm -f $$p $$f"; \
-	  rm -f $$p $$f ; \
-	done
+	@list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
 genmdesc$(EXEEXT): $(genmdesc_OBJECTS) $(genmdesc_DEPENDENCIES) 
 	@rm -f genmdesc$(EXEEXT)
 	$(genmdesc_LINK) $(genmdesc_OBJECTS) $(genmdesc_LDADD) $(LIBS)
@@ -916,49 +955,49 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
 
 genmdesc-genmdesc.o: genmdesc.c
 @am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(genmdesc_CFLAGS) $(CFLAGS) -MT genmdesc-genmdesc.o -MD -MP -MF $(DEPDIR)/genmdesc-genmdesc.Tpo -c -o genmdesc-genmdesc.o `test -f 'genmdesc.c' || echo '$(srcdir)/'`genmdesc.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/genmdesc-genmdesc.Tpo $(DEPDIR)/genmdesc-genmdesc.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/genmdesc-genmdesc.Tpo $(DEPDIR)/genmdesc-genmdesc.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='genmdesc.c' object='genmdesc-genmdesc.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(genmdesc_CFLAGS) $(CFLAGS) -c -o genmdesc-genmdesc.o `test -f 'genmdesc.c' || echo '$(srcdir)/'`genmdesc.c
 
 genmdesc-genmdesc.obj: genmdesc.c
 @am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(genmdesc_CFLAGS) $(CFLAGS) -MT genmdesc-genmdesc.obj -MD -MP -MF $(DEPDIR)/genmdesc-genmdesc.Tpo -c -o genmdesc-genmdesc.obj `if test -f 'genmdesc.c'; then $(CYGPATH_W) 'genmdesc.c'; else $(CYGPATH_W) '$(srcdir)/genmdesc.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/genmdesc-genmdesc.Tpo $(DEPDIR)/genmdesc-genmdesc.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/genmdesc-genmdesc.Tpo $(DEPDIR)/genmdesc-genmdesc.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='genmdesc.c' object='genmdesc-genmdesc.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(genmdesc_CFLAGS) $(CFLAGS) -c -o genmdesc-genmdesc.obj `if test -f 'genmdesc.c'; then $(CYGPATH_W) 'genmdesc.c'; else $(CYGPATH_W) '$(srcdir)/genmdesc.c'; fi`
 
 genmdesc-helpers.o: helpers.c
 @am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(genmdesc_CFLAGS) $(CFLAGS) -MT genmdesc-helpers.o -MD -MP -MF $(DEPDIR)/genmdesc-helpers.Tpo -c -o genmdesc-helpers.o `test -f 'helpers.c' || echo '$(srcdir)/'`helpers.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/genmdesc-helpers.Tpo $(DEPDIR)/genmdesc-helpers.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/genmdesc-helpers.Tpo $(DEPDIR)/genmdesc-helpers.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='helpers.c' object='genmdesc-helpers.o' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(genmdesc_CFLAGS) $(CFLAGS) -c -o genmdesc-helpers.o `test -f 'helpers.c' || echo '$(srcdir)/'`helpers.c
 
 genmdesc-helpers.obj: helpers.c
 @am__fastdepCC_TRUE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(genmdesc_CFLAGS) $(CFLAGS) -MT genmdesc-helpers.obj -MD -MP -MF $(DEPDIR)/genmdesc-helpers.Tpo -c -o genmdesc-helpers.obj `if test -f 'helpers.c'; then $(CYGPATH_W) 'helpers.c'; else $(CYGPATH_W) '$(srcdir)/helpers.c'; fi`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/genmdesc-helpers.Tpo $(DEPDIR)/genmdesc-helpers.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/genmdesc-helpers.Tpo $(DEPDIR)/genmdesc-helpers.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='helpers.c' object='genmdesc-helpers.obj' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(genmdesc_CFLAGS) $(CFLAGS) -c -o genmdesc-helpers.obj `if test -f 'helpers.c'; then $(CYGPATH_W) 'helpers.c'; else $(CYGPATH_W) '$(srcdir)/helpers.c'; fi`
@@ -980,34 +1019,37 @@ clean-libtool:
 install-libmonoincludeHEADERS: $(libmonoinclude_HEADERS)
 	@$(NORMAL_INSTALL)
 	test -z "$(libmonoincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libmonoincludedir)"
-	@list='$(libmonoinclude_HEADERS)'; for p in $$list; do \
+	@list='$(libmonoinclude_HEADERS)'; test -n "$(libmonoincludedir)" || list=; \
+	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  f=$(am__strip_dir) \
-	  echo " $(libmonoincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libmonoincludedir)/$$f'"; \
-	  $(libmonoincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libmonoincludedir)/$$f"; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libmonoincludedir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(libmonoincludedir)" || exit $$?; \
 	done
 
 uninstall-libmonoincludeHEADERS:
 	@$(NORMAL_UNINSTALL)
-	@list='$(libmonoinclude_HEADERS)'; for p in $$list; do \
-	  f=$(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(libmonoincludedir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(libmonoincludedir)/$$f"; \
-	done
+	@list='$(libmonoinclude_HEADERS)'; test -n "$(libmonoincludedir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	test -n "$$files" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(libmonoincludedir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(libmonoincludedir)" && rm -f $$files
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -1015,29 +1057,34 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -1058,13 +1105,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -1101,6 +1152,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -1124,6 +1176,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -1132,18 +1186,28 @@ install-data-am: install-libmonoincludeHEADERS
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am: install-binPROGRAMS install-libLTLIBRARIES
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -1167,7 +1231,7 @@ ps-am:
 uninstall-am: uninstall-binPROGRAMS uninstall-libLTLIBRARIES \
 	uninstall-libmonoincludeHEADERS
 
-.MAKE: install-am install-strip
+.MAKE: all check check-am install install-am install-strip
 
 .PHONY: CTAGS GTAGS all all-am check check-am check-local clean \
 	clean-binPROGRAMS clean-generic clean-libLTLIBRARIES \
@@ -1323,6 +1387,7 @@ version.h: Makefile
 patch-libtool:
 	sed -e 's,if (for obj in $$oldobjs,if (for obj in "",g' < ../../libtool > 2; mv 2 ../../libtool
 	chmod a+x ../../libtool
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/mini/aot-compiler.c b/mono/mini/aot-compiler.c
index 75fd82f..1d380da 100644
--- a/mono/mini/aot-compiler.c
+++ b/mono/mini/aot-compiler.c
@@ -172,6 +172,7 @@ typedef struct MonoAotCompile {
 	MonoImage *image;
 	GPtrArray *methods;
 	GHashTable *method_indexes;
+	GHashTable *method_depth;
 	MonoCompile **cfgs;
 	int cfgs_size;
 	GHashTable *patch_to_plt_offset;
@@ -2572,7 +2573,7 @@ get_method_index (MonoAotCompile *acfg, MonoMethod *method)
 }
 
 static int
-add_method (MonoAotCompile *acfg, MonoMethod *method)
+add_method_full (MonoAotCompile *acfg, MonoMethod *method, int depth)
 {
 	int index;
 
@@ -2586,11 +2587,19 @@ add_method (MonoAotCompile *acfg, MonoMethod *method)
 	/* FIXME: Fix quadratic behavior */
 	acfg->method_order = g_list_append (acfg->method_order, GUINT_TO_POINTER (index));
 
+	g_hash_table_insert (acfg->method_depth, method, GUINT_TO_POINTER (depth));
+
 	acfg->method_index ++;
 
 	return index;
 }
 
+static int
+add_method (MonoAotCompile *acfg, MonoMethod *method)
+{
+	return add_method_full (acfg, method, 0);
+}
+
 static void
 add_extra_method (MonoAotCompile *acfg, MonoMethod *method)
 {
@@ -2604,6 +2613,18 @@ add_extra_method (MonoAotCompile *acfg, MonoMethod *method)
 }
 
 static void
+add_extra_method_with_depth (MonoAotCompile *acfg, MonoMethod *method, int depth)
+{
+	int index;
+
+	index = GPOINTER_TO_UINT (g_hash_table_lookup (acfg->method_indexes, method));
+	if (index)
+		return;
+	add_method_full (acfg, method, depth);
+	g_ptr_array_add (acfg->extra_methods, method);
+}
+
+static void
 add_jit_icall_wrapper (gpointer key, gpointer value, gpointer user_data)
 {
 	MonoAotCompile *acfg = user_data;
@@ -4048,7 +4069,7 @@ compile_method (MonoAotCompile *acfg, MonoMethod *method)
 	MonoCompile *cfg;
 	MonoJumpInfo *patch_info;
 	gboolean skip;
-	int index;
+	int index, depth;
 	MonoMethod *wrapped;
 
 	if (acfg->aot_opts.metadata_only)
@@ -4241,20 +4262,27 @@ compile_method (MonoAotCompile *acfg, MonoMethod *method)
 	}
 
 	/* Adds generic instances referenced by this method */
-	for (patch_info = cfg->patch_info; patch_info; patch_info = patch_info->next) {
-		switch (patch_info->type) {
-		case MONO_PATCH_INFO_METHOD: {
-			MonoMethod *m = patch_info->data.method;
-			if (m->is_inflated) {
-				if (!(mono_class_generic_sharing_enabled (m->klass) &&
-					  mono_method_is_generic_sharable_impl (m, FALSE)) &&
-					!method_has_type_vars (m))
-					add_extra_method (acfg, m);
+	/* 
+	 * The depth is used to avoid infinite loops when generic virtual recursion is 
+	 * encountered.
+	 */
+	depth = GPOINTER_TO_UINT (g_hash_table_lookup (acfg->method_depth, method));
+	if (depth < 32) {
+		for (patch_info = cfg->patch_info; patch_info; patch_info = patch_info->next) {
+			switch (patch_info->type) {
+			case MONO_PATCH_INFO_METHOD: {
+				MonoMethod *m = patch_info->data.method;
+				if (m->is_inflated) {
+					if (!(mono_class_generic_sharing_enabled (m->klass) &&
+						  mono_method_is_generic_sharable_impl (m, FALSE)) &&
+						!method_has_type_vars (m))
+						add_extra_method_with_depth (acfg, m, depth + 1);
+				}
+				break;
+			}
+			default:
+				break;
 			}
-			break;
-		}
-		default:
-			break;
 		}
 	}
 
@@ -5970,6 +5998,7 @@ mono_compile_assembly (MonoAssembly *ass, guint32 opts, const char *aot_options)
 	acfg = g_new0 (MonoAotCompile, 1);
 	acfg->methods = g_ptr_array_new ();
 	acfg->method_indexes = g_hash_table_new (NULL, NULL);
+	acfg->method_depth = g_hash_table_new (NULL, NULL);
 	acfg->plt_offset_to_patch = g_hash_table_new (NULL, NULL);
 	acfg->patch_to_plt_offset = g_hash_table_new (mono_patch_info_hash, mono_patch_info_equal);
 	acfg->patch_to_shared_got_offset = g_hash_table_new (mono_patch_info_hash, mono_patch_info_equal);
diff --git a/mono/mini/aot-runtime.c b/mono/mini/aot-runtime.c
index 0c53f33..e9f612b 100644
--- a/mono/mini/aot-runtime.c
+++ b/mono/mini/aot-runtime.c
@@ -328,6 +328,8 @@ decode_klass_ref (MonoAotModule *module, guint8 *buf, guint8 **endbuf)
 				MonoType *type;
 
 				gclass = decode_klass_ref (module, p, &p);
+				if (!gclass)
+					return NULL;
 				g_assert (gclass->generic_container);
 
 				memset (&ctx, 0, sizeof (ctx));
diff --git a/mono/mini/basic.cs b/mono/mini/basic.cs
index cc308fb..e0a9e8b 100644
--- a/mono/mini/basic.cs
+++ b/mono/mini/basic.cs
@@ -1358,4 +1358,11 @@ class Tests {
 	}
 
 
-}
+	public static unsafe int test_0_ishr_sign_extend_cfold () {
+		int i = 32768;
+		int j = i << 16;
+		int k = j >> 16;
+
+		return k == -32768 ? 0 : 1;
+	}
+}
\ No newline at end of file
diff --git a/mono/mini/branch-opts.c b/mono/mini/branch-opts.c
index 18b3777..71fcd10 100644
--- a/mono/mini/branch-opts.c
+++ b/mono/mini/branch-opts.c
@@ -95,6 +95,9 @@ mono_branch_optimize_exception_target (MonoCompile *cfg, MonoBasicBlock *bb, con
 					} 
 
 					return NULL;
+				} else {
+					/* Branching to an outer clause could skip inner clauses */
+					return NULL;
 				}
 			} else {
 				/* Branching to an outer clause could skip inner clauses */
diff --git a/mono/mini/cfold.c b/mono/mini/cfold.c
index c3d1652..0c7c742 100644
--- a/mono/mini/cfold.c
+++ b/mono/mini/cfold.c
@@ -142,8 +142,8 @@ mono_constant_fold_ins (MonoCompile *cfg, MonoInst *ins, MonoInst *arg1, MonoIns
 				FOLD_BINOP2_IMM (OP_IOR_IMM, |);
 				FOLD_BINOP2_IMM (OP_IXOR_IMM, ^);
 				FOLD_BINOP2_IMM (OP_ISUB_IMM, -);
-				FOLD_BINOP2_IMM (OP_ISHL_IMM, <<);
-				FOLD_BINOP2_IMM (OP_ISHR_IMM, >>);
+				FOLD_BINOPC2_IMM (OP_ISHL_IMM, <<, gint32);
+				FOLD_BINOPC2_IMM (OP_ISHR_IMM, >>, gint32);
 				FOLD_BINOPC2_IMM (OP_ISHR_UN_IMM, >>, guint32);
 				FOLD_BINOP2_IMM (OP_SHL_IMM, <<);
 			}
diff --git a/mono/mini/cpu-ppc64.md b/mono/mini/cpu-ppc64.md
index 5b76b6d..87ea94e 100644
--- a/mono/mini/cpu-ppc64.md
+++ b/mono/mini/cpu-ppc64.md
@@ -117,6 +117,7 @@ loadi2_memindex: dest:i src1:b src2:i len:4
 loadu2_memindex: dest:i src1:b src2:i len:4
 loadi4_memindex: dest:i src1:b src2:i len:4
 loadu4_memindex: dest:i src1:b src2:i len:4
+loadi8_memindex: dest:i src1:b src2:i len:4
 loadr4_memindex: dest:f src1:b src2:i len:4
 loadr8_memindex: dest:f src1:b src2:i len:4
 store_memindex: dest:b src1:i src2:i len:4
diff --git a/mono/mini/driver.c b/mono/mini/driver.c
index 48ca2d9..f72f03d 100644
--- a/mono/mini/driver.c
+++ b/mono/mini/driver.c
@@ -1231,7 +1231,11 @@ mono_main (int argc, char* argv[])
 #if HAVE_SCHED_SETAFFINITY
 	if (getenv ("MONO_NO_SMP")) {
 		unsigned long proc_mask = 1;
+#ifdef GLIBC_BEFORE_2_3_4_SCHED_SETAFFINITY
+		sched_setaffinity (getpid(), (gpointer)&proc_mask);
+#else
 		sched_setaffinity (getpid(), sizeof (unsigned long), (gpointer)&proc_mask);
+#endif
 	}
 #endif
 	if (!g_thread_supported ())
@@ -1267,7 +1271,7 @@ mono_main (int argc, char* argv[])
 			mini_verbose++;
 		} else if (strcmp (argv [i], "--version") == 0 || strcmp (argv [i], "-V") == 0) {
 			char *build = mono_get_runtime_build_info ();
-			g_print ("Mono JIT compiler version %s (%s)\nCopyright (C) 2002-2008 Novell, Inc and Contributors. www.mono-project.com\n", VERSION, build);
+			g_print ("Mono JIT compiler version %s (%s)\nCopyright (C) 2002-2010 Novell, Inc and Contributors. www.mono-project.com\n", VERSION, build);
 			g_free (build);
 			g_print (info);
 			if (mini_verbose) {
diff --git a/mono/mini/exceptions-amd64.c b/mono/mini/exceptions-amd64.c
index 44edeb8..2df0d97 100644
--- a/mono/mini/exceptions-amd64.c
+++ b/mono/mini/exceptions-amd64.c
@@ -1051,6 +1051,10 @@ mono_arch_notify_pending_exc (void)
 {
 	MonoLMF *lmf = mono_get_lmf ();
 
+	if (!lmf)
+		/* Not yet started */
+		return;
+
 	if (lmf->rsp == 0)
 		/* Initial LMF */
 		return;
diff --git a/mono/mini/exceptions.cs b/mono/mini/exceptions.cs
index 62bc232..0ff07f3 100644
--- a/mono/mini/exceptions.cs
+++ b/mono/mini/exceptions.cs
@@ -2480,5 +2480,44 @@ class Tests {
         catch {
         }
     }
+
+	private static void do_raise () {
+		throw new System.Exception ();
+	}
+
+	private static int int_func (int i) {
+		return i;
+	}
+
+	// #559876
+	public static int test_8_local_deadce_causes () {
+      int myb = 4;
+  
+      try {
+        myb = int_func (8);
+        do_raise();
+        myb = int_func (2);
+      } catch (System.Exception) {
+		  return myb;
+	  }
+	  return 0;
+	}
+
+	public static int test_0_except_opt_two_clauses () {
+		int size;
+		size = -1;
+		uint ui = (uint)size;
+		try {
+			checked {
+				uint v = ui * (uint)4;
+			}
+		} catch (OverflowException e) {
+			return 0;
+		} catch (Exception) {
+			return 1;
+		}
+
+		return 2;
+	}
 }
 
diff --git a/mono/mini/generics.cs b/mono/mini/generics.cs
index 6d7140b..e432a67 100644
--- a/mono/mini/generics.cs
+++ b/mono/mini/generics.cs
@@ -401,6 +401,18 @@ class Tests {
 		return 0;
 	}
 
+	struct S<T> {}
+
+	public static int test_0_inline_infinite_polymorphic_recursion () {
+           f<int>(0);
+
+		   return 0;
+	}
+
+	private static void f<T>(int i) {
+		if(i==42) f<S<T>>(i);
+	}
+
 	enum MyEnumUlong : ulong {
 		Value_2 = 2
 	}
@@ -442,6 +454,28 @@ class Tests {
 		return cctor_count;
 	}
 
+	public static int test_0_marshalbyref_call_from_gshared_virt_elim () {
+		/* Calling a virtual method from gshared code which is changed to a nonvirt call */
+		Class1<object> o = new Class1<object> ();
+		o.Do (new Class2<object> ());
+		return 0;
+	}
+
+    public class Class1<T> {
+		public virtual void Do (Class2<T> t) {
+			t.Foo ();
+		}
+	}
+
+	public interface IFace1<T> {
+		void Foo ();
+	}
+
+	public class Class2<T> : MarshalByRefObject, IFace1<T> {
+		public void Foo () {
+		}
+	}
+
 	public static Type the_type;
 
 	public void ldvirtftn<T> () {
diff --git a/mono/mini/jit-icalls.c b/mono/mini/jit-icalls.c
index f6d1c7c..86891ce 100644
--- a/mono/mini/jit-icalls.c
+++ b/mono/mini/jit-icalls.c
@@ -978,3 +978,18 @@ mono_object_castclass (MonoObject *obj, MonoClass *klass)
 
 	return NULL;
 }
+
+gpointer
+mono_get_native_calli_wrapper (MonoImage *image, MonoMethodSignature *sig, gpointer func)
+{
+	MonoMarshalSpec **mspecs;
+	MonoMethodPInvoke piinfo;
+	MonoMethod *m;
+
+	mspecs = g_new0 (MonoMarshalSpec*, sig->param_count + 1);
+	memset (&piinfo, 0, sizeof (piinfo));
+
+	m = mono_marshal_get_native_func_wrapper (image, sig, &piinfo, mspecs, func);
+
+	return mono_compile_method (m);
+}
diff --git a/mono/mini/jit-icalls.h b/mono/mini/jit-icalls.h
index 8461d23..99d4456 100644
--- a/mono/mini/jit-icalls.h
+++ b/mono/mini/jit-icalls.h
@@ -157,5 +157,7 @@ MonoException *mono_create_corlib_exception_2 (guint32 token, MonoString *arg1,
 
 MonoObject* mono_object_castclass (MonoObject *obj, MonoClass *klass) MONO_INTERNAL;
 
+gpointer mono_get_native_calli_wrapper (MonoImage *image, MonoMethodSignature *sig, gpointer func) MONO_INTERNAL;
+
 #endif /* __MONO_JIT_ICALLS_H__ */
 
diff --git a/mono/mini/method-to-ir.c b/mono/mini/method-to-ir.c
index f3303d2..fbfc5a3 100644
--- a/mono/mini/method-to-ir.c
+++ b/mono/mini/method-to-ir.c
@@ -2265,12 +2265,17 @@ mono_emit_method_call_full (MonoCompile *cfg, MonoMethod *method, MonoMethodSign
 		if ((!cfg->compile_aot || enable_for_aot) && 
 			(!(method->flags & METHOD_ATTRIBUTE_VIRTUAL) || 
 			 (MONO_METHOD_IS_FINAL (method) &&
-			  method->wrapper_type != MONO_WRAPPER_REMOTING_INVOKE_WITH_CHECK))) {
+			  method->wrapper_type != MONO_WRAPPER_REMOTING_INVOKE_WITH_CHECK)) &&
+			!(method->klass->marshalbyref && context_used)) {
 			/* 
 			 * the method is not virtual, we just need to ensure this is not null
 			 * and then we can call the method directly.
 			 */
 			if (method->klass->marshalbyref || method->klass == mono_defaults.object_class) {
+				/* 
+				 * The check above ensures method is not gshared, this is needed since
+				 * gshared methods can't have wrappers.
+				 */
 				method = call->method = mono_marshal_get_remoting_invoke_with_check (method);
 			}
 
@@ -2347,7 +2352,7 @@ static MonoInst*
 mono_emit_rgctx_method_call_full (MonoCompile *cfg, MonoMethod *method, MonoMethodSignature *sig,
 		MonoInst **args, MonoInst *this, MonoInst *imt_arg, MonoInst *vtable_arg)
 {
-	int rgctx_reg;
+	int rgctx_reg = -1;
 	MonoInst *ins;
 	MonoCallInst *call;
 
@@ -3365,6 +3370,9 @@ mono_method_check_inlining (MonoCompile *cfg, MonoMethod *method)
 	if (cfg->generic_sharing_context)
 		return FALSE;
 
+	if (cfg->inline_depth > 10)
+		return FALSE;
+
 #ifdef MONO_ARCH_HAVE_LMF_OPS
 	if (((method->iflags & METHOD_IMPL_ATTRIBUTE_INTERNAL_CALL) ||
 		 (method->flags & METHOD_ATTRIBUTE_PINVOKE_IMPL)) &&
@@ -4156,6 +4164,7 @@ inline_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSignature *fsig,
 	prev_inlined_method = cfg->inlined_method;
 	cfg->inlined_method = cmethod;
 	cfg->ret_var_set = FALSE;
+	cfg->inline_depth ++;
 	prev_real_offset = cfg->real_offset;
 	prev_cbb_hash = cfg->cbb_hash;
 	prev_cil_offset_to_bb = cfg->cil_offset_to_bb;
@@ -4182,6 +4191,7 @@ inline_method (MonoCompile *cfg, MonoMethod *cmethod, MonoMethodSignature *fsig,
 	cfg->current_method = prev_current_method;
 	cfg->generic_context = prev_generic_context;
 	cfg->ret_var_set = prev_ret_var_set;
+	cfg->inline_depth --;
 
 	if ((costs >= 0 && costs < 60) || inline_allways) {
 		if (cfg->verbose_level > 2)
@@ -5925,6 +5935,21 @@ mono_method_to_ir (MonoCompile *cfg, MonoMethod *method, MonoBasicBlock *start_b
 					fsig = mono_metadata_parse_signature (image, token);
 
 				n = fsig->param_count + fsig->hasthis;
+
+				if (method->dynamic && fsig->pinvoke) {
+					MonoInst *args [3];
+
+					/*
+					 * This is a call through a function pointer using a pinvoke
+					 * signature. Have to create a wrapper and call that instead.
+					 * FIXME: This is very slow, need to create a wrapper at JIT time
+					 * instead based on the signature.
+					 */
+					EMIT_NEW_IMAGECONST (cfg, args [0], method->klass->image);
+					EMIT_NEW_PCONST (cfg, args [1], fsig);
+					args [2] = addr;
+					addr = mono_emit_jit_icall (cfg, mono_get_native_calli_wrapper, args);
+				}
 			} else {
 				MonoMethod *cil_method;
 				
diff --git a/mono/mini/mini-amd64.c b/mono/mini/mini-amd64.c
index 8f7d805..362209f 100644
--- a/mono/mini/mini-amd64.c
+++ b/mono/mini/mini-amd64.c
@@ -2002,11 +2002,6 @@ emit_call_body (MonoCompile *cfg, guint8 *code, guint32 patch_type, gconstpointe
 			/* These methods are allocated using malloc */
 			near_call = FALSE;
 
-		if (cfg->compile_aot) {
-			near_call = TRUE;
-			no_patch = TRUE;
-		}
-
 #ifdef MONO_ARCH_NOMAP32BIT
 		near_call = FALSE;
 #endif
@@ -2015,6 +2010,11 @@ emit_call_body (MonoCompile *cfg, guint8 *code, guint32 patch_type, gconstpointe
 		if (optimize_for_xen)
 			near_call = FALSE;
 
+		if (cfg->compile_aot) {
+			near_call = TRUE;
+			no_patch = TRUE;
+		}
+
 		if (near_call) {
 			/* 
 			 * Align the call displacement to an address divisible by 4 so it does
diff --git a/mono/mini/mini-arm.c b/mono/mini/mini-arm.c
index b02c262..659eb26 100644
--- a/mono/mini/mini-arm.c
+++ b/mono/mini/mini-arm.c
@@ -1879,8 +1879,13 @@ loop_start:
 			gboolean swap = FALSE;
 			int reg;
 
+			if (!ins->next) {
+				/* Optimized away */
+				NULLIFY_INS (ins);
+				break;
+			}
+
 			/* Some fp compares require swapped operands */
-			g_assert (ins->next);
 			switch (ins->next->opcode) {
 			case OP_FBGT:
 				ins->next->opcode = OP_FBLT;
diff --git a/mono/mini/mini-trampolines.c b/mono/mini/mini-trampolines.c
index b051454..9741eef 100644
--- a/mono/mini/mini-trampolines.c
+++ b/mono/mini/mini-trampolines.c
@@ -69,7 +69,7 @@ mono_convert_imt_slot_to_vtable_slot (gpointer* slot, gpointer *regs, guint8 *co
 		mono_vtable_build_imt_slot (vt, mono_method_get_imt_slot (imt_method));
 
 		if (impl_method)
-			*impl_method = mono_class_get_vtable_entry (vt->klass, interface_offset + imt_method->slot);
+			*impl_method = mono_class_get_vtable_entry (vt->klass, interface_offset + mono_method_get_vtable_slot (imt_method));
 #if DEBUG_IMT
 		printf ("mono_convert_imt_slot_to_vtable_slot: method = %s.%s.%s, imt_method = %s.%s.%s\n",
 				method->klass->name_space, method->klass->name, method->name, 
@@ -101,7 +101,7 @@ mono_convert_imt_slot_to_vtable_slot (gpointer* slot, gpointer *regs, guint8 *co
 gpointer
 mono_magic_trampoline (gssize *regs, guint8 *code, MonoMethod *m, guint8* tramp)
 {
-	gpointer addr;
+	gpointer addr, compiled_method;
 	gpointer *vtable_slot;
 	gboolean generic_shared = FALSE;
 	MonoMethod *declaring = NULL;
@@ -289,7 +289,7 @@ mono_magic_trampoline (gssize *regs, guint8 *code, MonoMethod *m, guint8* tramp)
 			m = mono_marshal_get_synchronized_wrapper (m);
 	}
 
-	addr = mono_compile_method (m);
+	addr = compiled_method = mono_compile_method (m);
 	g_assert (addr);
 
 	mono_debugger_trampoline_compiled (code, m, addr);
@@ -367,7 +367,7 @@ mono_magic_trampoline (gssize *regs, guint8 *code, MonoMethod *m, guint8* tramp)
 				MonoJitInfo *ji = 
 					mono_jit_info_table_find (mono_domain_get (), (char*)code);
 				MonoJitInfo *target_ji = 
-					mono_jit_info_table_find (mono_domain_get (), mono_get_addr_from_ftnptr (addr));
+					mono_jit_info_table_find (mono_domain_get (), mono_get_addr_from_ftnptr (compiled_method));
 
 				if (mono_method_same_domain (ji, target_ji))
 					mono_arch_patch_callsite (ji->code_start, code, addr);
diff --git a/mono/mini/mini.c b/mono/mini/mini.c
index e5fad81..822f806 100644
--- a/mono/mini/mini.c
+++ b/mono/mini/mini.c
@@ -3252,6 +3252,20 @@ mini_method_compile (MonoMethod *method, guint32 opts, MonoDomain *domain, gbool
 	mono_jit_stats.basic_blocks += cfg->num_bblocks;
 	mono_jit_stats.max_basic_blocks = MAX (cfg->num_bblocks, mono_jit_stats.max_basic_blocks);
 
+	/* todo: remove code when we have verified that the liveness for try/catch blocks
+	 * works perfectly 
+	 */
+	/* 
+	 * Currently, this can't be commented out since exception blocks are not
+	 * processed during liveness analysis.
+	 * It is also needed, because otherwise the local optimization passes would
+	 * delete assignments in cases like this:
+	 * r1 <- 1
+	 * <something which throws>
+	 * r1 <- 2
+	 */
+	mono_liveness_handle_exception_clauses (cfg);
+
 	/*g_print ("numblocks = %d\n", cfg->num_bblocks);*/
 
 	mono_decompose_long_opts (cfg);
@@ -3444,12 +3458,8 @@ mini_method_compile (MonoMethod *method, guint32 opts, MonoDomain *domain, gbool
 		g_list_free (regs);
 	}
 
-	/* todo: remove code when we have verified that the liveness for try/catch blocks
-	 * works perfectly 
-	 */
-	/* 
-	 * Currently, this can't be commented out since exception blocks are not
-	 * processed during liveness analysis.
+	/*
+	 * Have to call this again to process variables added since the first call.
 	 */
 	mono_liveness_handle_exception_clauses (cfg);
 
@@ -5289,6 +5299,7 @@ mini_init (const char *filename, const char *runtime_version)
 	register_icall (mono_create_corlib_exception_2, "mono_create_corlib_exception_2", "object int object object", TRUE);
 	register_icall (mono_array_new_1, "mono_array_new_1", "object ptr int", FALSE);
 	register_icall (mono_array_new_2, "mono_array_new_2", "object ptr int int", FALSE);
+	register_icall (mono_get_native_calli_wrapper, "mono_get_native_calli_wrapper", "ptr ptr ptr ptr", FALSE);
 #endif
 
 	mono_generic_sharing_init ();
diff --git a/mono/mini/mini.h b/mono/mini/mini.h
index 5923954..4da6e07 100644
--- a/mono/mini/mini.h
+++ b/mono/mini/mini.h
@@ -866,6 +866,7 @@ typedef struct {
 	MonoProfileCoverageInfo *coverage_info;
 	GHashTable       *token_info_hash;
 	MonoCompileArch  arch;
+	guint32          inline_depth;
 	guint32          exception_type;	/* MONO_EXCEPTION_* */
 	guint32          exception_data;
 	char*            exception_message;
diff --git a/mono/mini/tramp-ppc.c b/mono/mini/tramp-ppc.c
index b71f185..4cfb014 100644
--- a/mono/mini/tramp-ppc.c
+++ b/mono/mini/tramp-ppc.c
@@ -236,7 +236,7 @@ mono_arch_create_trampoline_code (MonoTrampolineType tramp_type)
 	 * in r5 as it's the third argument to the function)
 	 */
 	if (tramp_type == MONO_TRAMPOLINE_GENERIC_CLASS_INIT)
-		ppc_load_reg (buf, ppc_r5, GREGS_OFFSET + PPC_FIRST_ARG_REG * sizeof (gpointer), ppc_r1);
+		ppc_load_reg (buf, ppc_r5, GREGS_OFFSET + MONO_ARCH_VTABLE_REG * sizeof (gpointer), ppc_r1);
 	else
 		ppc_load_reg (buf, ppc_r5, GREGS_OFFSET, ppc_r1);
 	if ((tramp_type == MONO_TRAMPOLINE_JIT) || (tramp_type == MONO_TRAMPOLINE_JUMP))
@@ -514,7 +514,7 @@ mono_arch_create_generic_class_init_trampoline (void)
 	if (byte_offset < 0)
 		mono_marshal_find_bitfield_offset (MonoVTable, initialized, &byte_offset, &bitmask);
 
-	ppc_lbz (code, ppc_r4, byte_offset, PPC_FIRST_ARG_REG);
+	ppc_lbz (code, ppc_r4, byte_offset, MONO_ARCH_VTABLE_REG);
 	ppc_andid (code, ppc_r4, ppc_r4, bitmask);
 	jump = code;
 	ppc_bc (code, PPC_BR_TRUE, PPC_BR_EQ, 0);
diff --git a/mono/monograph/Makefile.in b/mono/monograph/Makefile.in
index 29589f8..194643d 100644
--- a/mono/monograph/Makefile.in
+++ b/mono/monograph/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -48,8 +50,8 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 am__installdirs = "$(DESTDIR)$(bindir)"
-binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
 PROGRAMS = $(bin_PROGRAMS)
 monograph_SOURCES = monograph.c
 monograph_OBJECTS = monograph.$(OBJEXT)
@@ -58,6 +60,7 @@ monograph_DEPENDENCIES = $(runtime_lib) $(am__DEPENDENCIES_1)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -159,6 +162,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -271,14 +275,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/monograph/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/monograph/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/monograph/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/monograph/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -296,34 +300,50 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 install-binPROGRAMS: $(bin_PROGRAMS)
 	@$(NORMAL_INSTALL)
 	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  if test -f $$p \
-	     || test -f $$p1 \
-	  ; then \
-	    f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
-	   echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-	   $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
-	  else :; fi; \
-	done
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	for p in $$list; do echo "$$p $$p"; done | \
+	sed 's/$(EXEEXT)$$//' | \
+	while read p p1; do if test -f $$p || test -f $$p1; \
+	  then echo "$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n;h' -e 's|.*|.|' \
+	    -e 'p;x;s,.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/' | \
+	sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1 } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) files[d] = files[d] " " $$1; \
+	    else { print "f", $$3 "/" $$4, $$1; } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	    if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	    test -z "$$files" || { \
+	    echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	    $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL_PROGRAM) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	    } \
+	; done
 
 uninstall-binPROGRAMS:
 	@$(NORMAL_UNINSTALL)
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
-	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
-	done
+	@list='$(bin_PROGRAMS)'; test -n "$(bindir)" || list=; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	  sed -e 'h;s,^.*/,,;s/$(EXEEXT)$$//;$(transform)' \
+	      -e 's/$$/$(EXEEXT)/' `; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(bindir)" && rm -f $$files
 
 clean-binPROGRAMS:
-	@list='$(bin_PROGRAMS)'; for p in $$list; do \
-	  f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
-	  echo " rm -f $$p $$f"; \
-	  rm -f $$p $$f ; \
-	done
+	@list='$(bin_PROGRAMS)'; test -n "$$list" || exit 0; \
+	echo " rm -f" $$list; \
+	rm -f $$list || exit $$?; \
+	test -n "$(EXEEXT)" || exit 0; \
+	list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \
+	echo " rm -f" $$list; \
+	rm -f $$list
 monograph$(EXEEXT): $(monograph_OBJECTS) $(monograph_DEPENDENCIES) 
 	@rm -f monograph$(EXEEXT)
 	$(LINK) $(monograph_OBJECTS) $(monograph_LDADD) $(LIBS)
@@ -338,21 +358,21 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
@@ -368,14 +388,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -383,29 +403,34 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -426,13 +451,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -463,6 +492,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -483,6 +513,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -491,18 +523,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am: install-binPROGRAMS
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -549,6 +591,7 @@ graphs: $(OUT)
 %.jpeg: monograph
 	./monograph -n -o $*.png corlib.dll $*
 	convert -geometry '480x360>' $*.png $*.jpeg
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/os/Makefile.in b/mono/os/Makefile.in
index d190be7..687fa48 100644
--- a/mono/os/Makefile.in
+++ b/mono/os/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,8 +16,9 @@
 @SET_MAKE@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -46,6 +48,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -139,6 +142,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -237,14 +241,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/os/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/os/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/os/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/os/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -262,6 +266,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -291,13 +296,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -325,6 +334,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -343,6 +353,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -351,18 +363,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -396,6 +418,7 @@ uninstall-am:
 	maintainer-clean-generic mostlyclean mostlyclean-generic \
 	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/profiler/ChangeLog b/mono/profiler/ChangeLog
index ed0d387..9186330 100644
--- a/mono/profiler/ChangeLog
+++ b/mono/profiler/ChangeLog
@@ -1,3 +1,8 @@
+2010-01-11  Zoltan Varga  <vargaz at gmail.com>
+
+	* mono-profiler-logging.c (_ProfilerFileWriteBuffer): Use MONO_ZERO_LEN_ARRAY.
+	Fixes #569806.
+
 2009-03-16  Massimiliano Mantione <massi at ximian.com>
 	* mono-profiler-logging.c: Backport from trunk, make it like r129416:
 	- When checking if an elf file is valid, avoid mapping it in memory
diff --git a/mono/profiler/Makefile.in b/mono/profiler/Makefile.in
index a5fec73..65ab6c2 100644
--- a/mono/profiler/Makefile.in
+++ b/mono/profiler/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -47,14 +49,29 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(libdir)"
-libLTLIBRARIES_INSTALL = $(INSTALL)
 LTLIBRARIES = $(lib_LTLIBRARIES)
 libmono_profiler_aot_la_DEPENDENCIES =  \
 	$(top_builddir)/mono/mini/libmono.la
@@ -84,6 +101,7 @@ libmono_profiler_logging_la_OBJECTS =  \
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -189,6 +207,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -302,14 +321,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/profiler/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/profiler/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/profiler/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/profiler/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -327,23 +346,28 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+	list2=; for p in $$list; do \
 	  if test -f $$p; then \
-	    f=$(am__strip_dir) \
-	    echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
-	    $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
+	    list2="$$list2 $$p"; \
 	  else :; fi; \
-	done
+	done; \
+	test -z "$$list2" || { \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+	}
 
 uninstall-libLTLIBRARIES:
 	@$(NORMAL_UNINSTALL)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  p=$(am__strip_dir) \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
 	done
 
 clean-libLTLIBRARIES:
@@ -373,21 +397,21 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
@@ -403,14 +427,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -418,29 +442,34 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -461,13 +490,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -498,6 +531,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -519,6 +553,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -527,18 +563,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am: install-libLTLIBRARIES
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -577,6 +623,7 @@ uninstall-am: uninstall-libLTLIBRARIES
 	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
 	tags uninstall uninstall-am uninstall-libLTLIBRARIES
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/profiler/mono-profiler-logging.c b/mono/profiler/mono-profiler-logging.c
index d507f42..914e070 100644
--- a/mono/profiler/mono-profiler-logging.c
+++ b/mono/profiler/mono-profiler-logging.c
@@ -790,7 +790,7 @@ static __thread ProfilerPerThreadData * tls_profiler_per_thread_data;
 #define PROFILER_FILE_WRITE_BUFFER_SIZE (profiler->write_buffer_size)
 typedef struct _ProfilerFileWriteBuffer {
 	struct _ProfilerFileWriteBuffer *next;
-	guint8 buffer [];
+	guint8 buffer [MONO_ZERO_LEN_ARRAY];
 } ProfilerFileWriteBuffer;
 
 #define CHECK_PROFILER_ENABLED() do {\
diff --git a/mono/tests/ChangeLog b/mono/tests/ChangeLog
index 92cbdb2..8a4e5f4 100644
--- a/mono/tests/ChangeLog
+++ b/mono/tests/ChangeLog
@@ -1,3 +1,7 @@
+2009-12-17  Zoltan Varga  <vargaz at gmail.com>
+
+	* libtest.c pinvoke2.cs: Add a test for calling pinvoke methods using calli.
+
 2009-10-07  Zoltan Varga  <vargaz at gmail.com>
 
 	* pinvoke2.cs libtest.c: Add a test for marshalling DateTime to unmanaged code.
diff --git a/mono/tests/Makefile.in b/mono/tests/Makefile.in
index 7960928..f5f57d7 100644
--- a/mono/tests/Makefile.in
+++ b/mono/tests/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -49,6 +51,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES = tests-config
+CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 @EGLIB_BUILD_FALSE at am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1) \
@@ -63,6 +66,7 @@ libtest_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -80,10 +84,38 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 	ps-recursive uninstall-recursive
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+	distdir
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
 API_VER = @API_VER@
@@ -174,6 +206,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -735,14 +768,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/tests/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/tests/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/tests/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/tests/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -760,6 +793,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 tests-config: $(top_builddir)/config.status $(srcdir)/tests-config.in
 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 
@@ -784,31 +818,31 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
 
 libtest_la-libtest.lo: libtest.c
- at am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_la_CFLAGS) $(CFLAGS) -MT libtest_la-libtest.lo -MD -MP -MF $(DEPDIR)/libtest_la-libtest.Tpo -c -o libtest_la-libtest.lo `test -f 'libtest.c' || echo '$(srcdir)/'`libtest.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/libtest_la-libtest.Tpo $(DEPDIR)/libtest_la-libtest.Plo
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_la_CFLAGS) $(CFLAGS) -MT libtest_la-libtest.lo -MD -MP -MF $(DEPDIR)/libtest_la-libtest.Tpo -c -o libtest_la-libtest.lo `test -f 'libtest.c' || echo '$(srcdir)/'`libtest.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/libtest_la-libtest.Tpo $(DEPDIR)/libtest_la-libtest.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='libtest.c' object='libtest_la-libtest.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_la_CFLAGS) $(CFLAGS) -c -o libtest_la-libtest.lo `test -f 'libtest.c' || echo '$(srcdir)/'`libtest.c
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libtest_la_CFLAGS) $(CFLAGS) -c -o libtest_la-libtest.lo `test -f 'libtest.c' || echo '$(srcdir)/'`libtest.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -840,7 +874,7 @@ $(RECURSIVE_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done; \
 	if test "$$dot_seen" = "no"; then \
@@ -874,16 +908,16 @@ $(RECURSIVE_CLEAN_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done && test -z "$$fail"
 tags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 	done
 ctags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
 	done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -891,14 +925,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
 	  include_option=--etags-include; \
@@ -910,7 +944,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test ! -f $$subdir/TAGS || \
-	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
@@ -919,29 +953,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -962,29 +1001,44 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
-	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test -d "$(distdir)/$$subdir" \
 	    || $(MKDIR_P) "$(distdir)/$$subdir" \
 	    || exit 1; \
-	    distdir=`$(am__cd) $(distdir) && pwd`; \
-	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
-	    (cd $$subdir && \
+	  fi; \
+	done
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+	    $(am__relativize); \
+	    new_distdir=$$reldir; \
+	    dir1=$$subdir; dir2="$(top_distdir)"; \
+	    $(am__relativize); \
+	    new_top_distdir=$$reldir; \
+	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+	    ($(am__cd) $$subdir && \
 	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$top_distdir" \
-	        distdir="$$distdir/$$subdir" \
+	        top_distdir="$$new_top_distdir" \
+	        distdir="$$new_distdir" \
 		am__remove_distdir=: \
 		am__skip_length_check=: \
+		am__skip_mode_fix=: \
 	        distdir) \
 	      || exit 1; \
 	  fi; \
@@ -1016,6 +1070,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -1037,6 +1092,8 @@ dvi-am:
 
 html: html-recursive
 
+html-am:
+
 info: info-recursive
 
 info-am:
@@ -1045,18 +1102,28 @@ install-data-am:
 
 install-dvi: install-dvi-recursive
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-recursive
 
+install-html-am:
+
 install-info: install-info-recursive
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-recursive
 
+install-pdf-am:
+
 install-ps: install-ps-recursive
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -1079,8 +1146,8 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
-	install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) check-am \
+	ctags-recursive install-am install-strip tags-recursive
 
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
 	all all-am check check-am check-local clean clean-generic \
@@ -1367,6 +1434,7 @@ patch-libtool:
 	sed -e 's,build_libtool_libs=no,build_libtool_libs=yes,g' libtool > 2; mv 2 libtool
 	sed -e 's,LIBTOOL =,LIBTOOL2 =,g' Makefile > 2 && echo "LIBTOOL = bash ./libtool" > 1 && cat 1 2 > Makefile
 	touch libtest.c
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/tests/assemblyresolve/Makefile.in b/mono/tests/assemblyresolve/Makefile.in
index 54c389a..3b54ade 100644
--- a/mono/tests/assemblyresolve/Makefile.in
+++ b/mono/tests/assemblyresolve/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,8 +16,9 @@
 @SET_MAKE@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -46,6 +48,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -139,6 +142,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -240,14 +244,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/tests/assemblyresolve/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/tests/assemblyresolve/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/tests/assemblyresolve/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/tests/assemblyresolve/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -265,6 +269,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -294,13 +299,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -328,6 +337,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -346,6 +356,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -354,18 +366,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -417,6 +439,7 @@ deps/test.dll: deps/TestBase.dll Test.cs
 
 deps/TestBase.dll: TestBase.cs
 	$(MCS) -out:deps/TestBase.dll $(srcdir)/TestBase.cs
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/tests/cas/Makefile.in b/mono/tests/cas/Makefile.in
index 1e41108..9b62bd6 100644
--- a/mono/tests/cas/Makefile.in
+++ b/mono/tests/cas/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,8 +16,9 @@
 @SET_MAKE@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -46,6 +48,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -57,10 +60,38 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 	ps-recursive uninstall-recursive
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+	distdir
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
 API_VER = @API_VER@
@@ -151,6 +182,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -255,14 +287,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/tests/cas/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/tests/cas/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/tests/cas/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/tests/cas/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -280,6 +312,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -311,7 +344,7 @@ $(RECURSIVE_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done; \
 	if test "$$dot_seen" = "no"; then \
@@ -345,16 +378,16 @@ $(RECURSIVE_CLEAN_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done && test -z "$$fail"
 tags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 	done
 ctags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
 	done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -362,14 +395,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
 	  include_option=--etags-include; \
@@ -381,7 +414,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test ! -f $$subdir/TAGS || \
-	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
@@ -390,29 +423,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -433,29 +471,44 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
-	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test -d "$(distdir)/$$subdir" \
 	    || $(MKDIR_P) "$(distdir)/$$subdir" \
 	    || exit 1; \
-	    distdir=`$(am__cd) $(distdir) && pwd`; \
-	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
-	    (cd $$subdir && \
+	  fi; \
+	done
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+	    $(am__relativize); \
+	    new_distdir=$$reldir; \
+	    dir1=$$subdir; dir2="$(top_distdir)"; \
+	    $(am__relativize); \
+	    new_top_distdir=$$reldir; \
+	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+	    ($(am__cd) $$subdir && \
 	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$top_distdir" \
-	        distdir="$$distdir/$$subdir" \
+	        top_distdir="$$new_top_distdir" \
+	        distdir="$$new_distdir" \
 		am__remove_distdir=: \
 		am__skip_length_check=: \
+		am__skip_mode_fix=: \
 	        distdir) \
 	      || exit 1; \
 	  fi; \
@@ -485,6 +538,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -503,6 +557,8 @@ dvi-am:
 
 html: html-recursive
 
+html-am:
+
 info: info-recursive
 
 info-am:
@@ -511,18 +567,28 @@ install-data-am:
 
 install-dvi: install-dvi-recursive
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-recursive
 
+install-html-am:
+
 install-info: install-info-recursive
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-recursive
 
+install-pdf-am:
+
 install-ps: install-ps-recursive
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -543,8 +609,8 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
-	install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+	install-am install-strip tags-recursive
 
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
 	all all-am check check-am clean clean-generic clean-libtool \
@@ -585,6 +651,7 @@ test:
 		done;	\
 		exit 1;	\
 	fi
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/tests/cas/assembly/Makefile.in b/mono/tests/cas/assembly/Makefile.in
index dcf7c4e..a132407 100644
--- a/mono/tests/cas/assembly/Makefile.in
+++ b/mono/tests/cas/assembly/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,8 +16,9 @@
 @SET_MAKE@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -47,6 +49,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -140,6 +143,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -250,14 +254,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/tests/cas/assembly/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/tests/cas/assembly/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/tests/cas/assembly/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/tests/cas/assembly/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -275,6 +279,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -304,13 +309,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -338,6 +347,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -354,6 +364,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -362,18 +374,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -457,6 +479,7 @@ clean:
 
 %.exe.so: %.exe
 	$(RUNTIME) --aot $^
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/tests/cas/demand/Makefile.in b/mono/tests/cas/demand/Makefile.in
index e3d6c67..83f9278 100644
--- a/mono/tests/cas/demand/Makefile.in
+++ b/mono/tests/cas/demand/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,8 +16,9 @@
 @SET_MAKE@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -47,6 +49,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -140,6 +143,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -254,14 +258,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/tests/cas/demand/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/tests/cas/demand/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/tests/cas/demand/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/tests/cas/demand/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -279,6 +283,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -308,13 +313,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -342,6 +351,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -358,6 +368,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -366,18 +378,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -470,6 +492,7 @@ clean:
 
 %.exe.so: %.exe
 	$(RUNTIME) --aot $^
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/tests/cas/inheritance/Makefile.in b/mono/tests/cas/inheritance/Makefile.in
index 08160ae..a7d80d9 100644
--- a/mono/tests/cas/inheritance/Makefile.in
+++ b/mono/tests/cas/inheritance/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,8 +16,9 @@
 @SET_MAKE@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -47,6 +49,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -140,6 +143,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -257,14 +261,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/tests/cas/inheritance/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/tests/cas/inheritance/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/tests/cas/inheritance/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/tests/cas/inheritance/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -282,6 +286,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -311,13 +316,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -345,6 +354,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -361,6 +371,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -369,18 +381,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -491,6 +513,7 @@ clean:
 
 %.exe.so: %.exe
 	$(RUNTIME) --aot $^
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/tests/cas/linkdemand/Makefile.in b/mono/tests/cas/linkdemand/Makefile.in
index 2d1aaaa..bc2b87b 100644
--- a/mono/tests/cas/linkdemand/Makefile.in
+++ b/mono/tests/cas/linkdemand/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,8 +16,9 @@
 @SET_MAKE@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -47,6 +49,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -140,6 +143,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -268,14 +272,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/tests/cas/linkdemand/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/tests/cas/linkdemand/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/tests/cas/linkdemand/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/tests/cas/linkdemand/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -293,6 +297,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -322,13 +327,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -356,6 +365,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -372,6 +382,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -380,18 +392,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -509,6 +531,7 @@ aptclib.dll: aptclib.cs aptc.snk
 
 %.exe.so: %.exe
 	$(RUNTIME) --aot $^
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/tests/cas/threads/Makefile.in b/mono/tests/cas/threads/Makefile.in
index 2461c68..40d95cc 100644
--- a/mono/tests/cas/threads/Makefile.in
+++ b/mono/tests/cas/threads/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,8 +16,9 @@
 @SET_MAKE@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -47,6 +49,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -140,6 +143,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -257,14 +261,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/tests/cas/threads/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/tests/cas/threads/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/tests/cas/threads/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/tests/cas/threads/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -282,6 +286,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -311,13 +316,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -345,6 +354,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -361,6 +371,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -369,18 +381,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -479,6 +501,7 @@ swf-%.exe: swf-%.cs
 
 %.exe.so: %.exe
 	$(RUNTIME) --aot $^
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/mono/tests/libtest.c b/mono/tests/libtest.c
index 0cd0c3f..7925625 100644
--- a/mono/tests/libtest.c
+++ b/mono/tests/libtest.c
@@ -3053,6 +3053,12 @@ lookup_mono_symbol (const char *symbol_name)
 		return NULL;
 }
 
+gpointer
+mono_test_marshal_lookup_symbol (const char *symbol_name)
+{
+	return lookup_mono_symbol (symbol_name);
+}
+
 /**
  * test_method_thunk:
  *
diff --git a/mono/tests/pinvoke2.cs b/mono/tests/pinvoke2.cs
index a4b1d7e..0b88077 100644
--- a/mono/tests/pinvoke2.cs
+++ b/mono/tests/pinvoke2.cs
@@ -2,6 +2,7 @@ using System;
 using System.Text;
 using System.Runtime.InteropServices;
 using System.Runtime.CompilerServices;
+using System.Reflection.Emit;
 
 public class Tests {
 
@@ -1506,5 +1507,46 @@ public class Tests {
 		double d2 = mono_test_marshal_date_time (new DateTime (2009, 12, 6));
 		return  (d2 == 40153.0) ? 0 : 1;
 	}
+
+	/*
+	 * Calling pinvoke functions dynamically using calli
+	 */
+	
+	[DllImport("libtest")]
+	private static extern IntPtr mono_test_marshal_lookup_symbol (string fileName);
+
+	delegate void CalliDel (IntPtr a, int[] f);
+
+	public static int test_0_calli_dynamic () {
+		IntPtr func = mono_test_marshal_lookup_symbol ("mono_test_marshal_inout_array");
+
+		DynamicMethod dm = new DynamicMethod ("calli", typeof (void), new Type [] { typeof (IntPtr), typeof (int[]) });
+
+		var il = dm.GetILGenerator ();
+		var signature = SignatureHelper.GetMethodSigHelper (CallingConvention.Cdecl, typeof (void));
+
+		il.Emit (OpCodes.Ldarg, 1);
+		signature.AddArgument (typeof (byte[]));
+
+		il.Emit (OpCodes.Ldarg_0);
+
+		il.Emit (OpCodes.Calli, signature);
+		il.Emit (OpCodes.Ret);
+
+		var f = (CalliDel)dm.CreateDelegate (typeof (CalliDel));
+
+		int[] arr = new int [1000];
+		for (int i = 0; i < 50; ++i)
+			arr [i] = (int)i;
+		f (func, arr);
+		if (arr.Length != 1000)
+			return 1;
+		for (int i = 0; i < 50; ++i)
+			if (arr [i] != 50 - i)
+				return 2;
+
+		return 0;
+	}
+
 }
 
diff --git a/mono/utils/Makefile.in b/mono/utils/Makefile.in
index 70d5a73..70145f6 100644
--- a/mono/utils/Makefile.in
+++ b/mono/utils/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -17,8 +18,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -49,6 +51,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 LTLIBRARIES = $(noinst_LTLIBRARIES)
 libmonoutils_la_LIBADD =
 am__libmonoutils_la_SOURCES_DIST = mono-hash.c mono-ehash.c mono-md5.c \
@@ -75,6 +78,7 @@ libmonoutils_la_OBJECTS = $(am_libmonoutils_la_OBJECTS)
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -88,9 +92,23 @@ am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(libmonoutilsincludedir)"
-libmonoutilsincludeHEADERS_INSTALL = $(INSTALL_HEADER)
 HEADERS = $(libmonoutilsinclude_HEADERS)
 ETAGS = etags
 CTAGS = ctags
@@ -185,6 +203,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -347,14 +366,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  mono/utils/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  mono/utils/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu mono/utils/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu mono/utils/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -372,6 +391,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 clean-noinstLTLIBRARIES:
 	-test -z "$(noinst_LTLIBRARIES)" || rm -f $(noinst_LTLIBRARIES)
@@ -417,21 +437,21 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
@@ -444,34 +464,37 @@ clean-libtool:
 install-libmonoutilsincludeHEADERS: $(libmonoutilsinclude_HEADERS)
 	@$(NORMAL_INSTALL)
 	test -z "$(libmonoutilsincludedir)" || $(MKDIR_P) "$(DESTDIR)$(libmonoutilsincludedir)"
-	@list='$(libmonoutilsinclude_HEADERS)'; for p in $$list; do \
+	@list='$(libmonoutilsinclude_HEADERS)'; test -n "$(libmonoutilsincludedir)" || list=; \
+	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  f=$(am__strip_dir) \
-	  echo " $(libmonoutilsincludeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(libmonoutilsincludedir)/$$f'"; \
-	  $(libmonoutilsincludeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(libmonoutilsincludedir)/$$f"; \
+	  echo "$$d$$p"; \
+	done | $(am__base_list) | \
+	while read files; do \
+	  echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(libmonoutilsincludedir)'"; \
+	  $(INSTALL_HEADER) $$files "$(DESTDIR)$(libmonoutilsincludedir)" || exit $$?; \
 	done
 
 uninstall-libmonoutilsincludeHEADERS:
 	@$(NORMAL_UNINSTALL)
-	@list='$(libmonoutilsinclude_HEADERS)'; for p in $$list; do \
-	  f=$(am__strip_dir) \
-	  echo " rm -f '$(DESTDIR)$(libmonoutilsincludedir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(libmonoutilsincludedir)/$$f"; \
-	done
+	@list='$(libmonoutilsinclude_HEADERS)'; test -n "$(libmonoutilsincludedir)" || list=; \
+	files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
+	test -n "$$files" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(libmonoutilsincludedir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(libmonoutilsincludedir)" && rm -f $$files
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -479,29 +502,34 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -522,13 +550,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -561,6 +593,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -583,6 +616,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -591,18 +626,28 @@ install-data-am: install-libmonoutilsincludeHEADERS
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -625,7 +670,7 @@ ps-am:
 
 uninstall-am: uninstall-libmonoutilsincludeHEADERS
 
-.MAKE: install-am install-strip
+.MAKE: all check install install-am install-strip
 
 .PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
 	clean-libtool clean-noinstLTLIBRARIES ctags distclean \
@@ -645,6 +690,7 @@ uninstall-am: uninstall-libmonoutilsincludeHEADERS
 
 @ENABLE_DTRACE_TRUE at mono-dtrace.h: $(top_srcdir)/data/mono.d
 @ENABLE_DTRACE_TRUE@	$(DTRACE) $(DTRACEFLAGS) -h -s $(top_srcdir)/data/mono.d -o $@ || > $@
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/msvc/Makefile.in b/msvc/Makefile.in
index 3c121d4..4849933 100644
--- a/msvc/Makefile.in
+++ b/msvc/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,8 +16,9 @@
 @SET_MAKE@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -47,6 +49,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -140,6 +143,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -254,14 +258,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  msvc/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  msvc/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu msvc/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu msvc/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -279,6 +283,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -308,13 +313,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -342,6 +351,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -360,6 +370,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -368,18 +380,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -416,6 +438,7 @@ uninstall-am:
 
 update-def:
 	perl create-windef.pl mono.def
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/po/Makefile.in b/po/Makefile.in
index b965c59..6440279 100644
--- a/po/Makefile.in
+++ b/po/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,8 +16,9 @@
 @SET_MAKE@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -46,6 +48,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -57,10 +60,38 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 	ps-recursive uninstall-recursive
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+	distdir
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
 API_VER = @API_VER@
@@ -151,6 +182,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -249,14 +281,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  po/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  po/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu po/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu po/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -274,6 +306,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -305,7 +338,7 @@ $(RECURSIVE_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done; \
 	if test "$$dot_seen" = "no"; then \
@@ -339,16 +372,16 @@ $(RECURSIVE_CLEAN_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done && test -z "$$fail"
 tags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 	done
 ctags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
 	done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -356,14 +389,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
 	  include_option=--etags-include; \
@@ -375,7 +408,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test ! -f $$subdir/TAGS || \
-	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
@@ -384,29 +417,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -427,29 +465,44 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
-	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test -d "$(distdir)/$$subdir" \
 	    || $(MKDIR_P) "$(distdir)/$$subdir" \
 	    || exit 1; \
-	    distdir=`$(am__cd) $(distdir) && pwd`; \
-	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
-	    (cd $$subdir && \
+	  fi; \
+	done
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+	    $(am__relativize); \
+	    new_distdir=$$reldir; \
+	    dir1=$$subdir; dir2="$(top_distdir)"; \
+	    $(am__relativize); \
+	    new_top_distdir=$$reldir; \
+	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+	    ($(am__cd) $$subdir && \
 	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$top_distdir" \
-	        distdir="$$distdir/$$subdir" \
+	        top_distdir="$$new_top_distdir" \
+	        distdir="$$new_distdir" \
 		am__remove_distdir=: \
 		am__skip_length_check=: \
+		am__skip_mode_fix=: \
 	        distdir) \
 	      || exit 1; \
 	  fi; \
@@ -479,6 +532,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -497,6 +551,8 @@ dvi-am:
 
 html: html-recursive
 
+html-am:
+
 info: info-recursive
 
 info-am:
@@ -505,18 +561,28 @@ install-data-am:
 
 install-dvi: install-dvi-recursive
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-recursive
 
+install-html-am:
+
 install-info: install-info-recursive
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-recursive
 
+install-pdf-am:
+
 install-ps: install-ps-recursive
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -537,8 +603,8 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
-	install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+	install-am install-strip tags-recursive
 
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
 	all all-am check check-am clean clean-generic clean-libtool \
@@ -554,6 +620,7 @@ uninstall-am:
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
 	uninstall uninstall-am
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/po/mcs/de.gmo b/po/mcs/de.gmo
index 4c6f01a..17cf6e5 100644
Binary files a/po/mcs/de.gmo and b/po/mcs/de.gmo differ
diff --git a/po/mcs/de.po b/po/mcs/de.po
index fadff93..a3a0d65 100644
--- a/po/mcs/de.po
+++ b/po/mcs/de.po
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: http://www.mono-project.com/Bugs\n"
-"POT-Creation-Date: 2009-11-30 19:29-0700\n"
+"POT-Creation-Date: 2010-02-16 22:41+0000\n"
 "PO-Revision-Date: 2008-09-26 15:14+0100\n"
 "Last-Translator: Daniel Nauck <dna at mono-project.de>\n"
 "Language-Team: http://www.mono-project.de\n"
diff --git a/po/mcs/es.gmo b/po/mcs/es.gmo
index 7cde038..6596c43 100644
Binary files a/po/mcs/es.gmo and b/po/mcs/es.gmo differ
diff --git a/po/mcs/es.po b/po/mcs/es.po
index ed8d854..d91c9c9 100644
--- a/po/mcs/es.po
+++ b/po/mcs/es.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: mono 2.1\n"
 "Report-Msgid-Bugs-To: http://www.mono-project.com/Bugs\n"
-"POT-Creation-Date: 2009-11-30 19:29-0700\n"
+"POT-Creation-Date: 2010-02-16 22:41+0000\n"
 "PO-Revision-Date: 2008-09-19 13:28-0400\n"
 "Last-Translator: Miguel de Icaza <miguel at novell.com>\n"
 "Language-Team: es <mono-list at lists.ximian.com>\n"
diff --git a/po/mcs/ja.gmo b/po/mcs/ja.gmo
index 3c52cd9..e675f22 100644
Binary files a/po/mcs/ja.gmo and b/po/mcs/ja.gmo differ
diff --git a/po/mcs/ja.po b/po/mcs/ja.po
index 5d81c99..abf8db6 100644
--- a/po/mcs/ja.po
+++ b/po/mcs/ja.po
@@ -2,7 +2,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: \n"
 "Report-Msgid-Bugs-To: http://www.mono-project.com/Bugs\n"
-"POT-Creation-Date: 2009-11-30 19:29-0700\n"
+"POT-Creation-Date: 2010-02-16 22:41+0000\n"
 "PO-Revision-Date: \n"
 "Last-Translator: Atsushi Eno <atsushi at ximian.com>\n"
 "Language-Team: \n"
diff --git a/po/mcs/mcs.pot b/po/mcs/mcs.pot
index a82dada..3bfe83c 100644
--- a/po/mcs/mcs.pot
+++ b/po/mcs/mcs.pot
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: mono 2.4.3\n"
+"Project-Id-Version: mono 2.4.4\n"
 "Report-Msgid-Bugs-To: http://www.mono-project.com/Bugs\n"
-"POT-Creation-Date: 2009-11-30 19:29-0700\n"
+"POT-Creation-Date: 2010-02-16 22:41+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
diff --git a/runtime/Makefile.in b/runtime/Makefile.in
index 0032c26..e65f310 100644
--- a/runtime/Makefile.in
+++ b/runtime/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -48,6 +50,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES = mono-wrapper monodis-wrapper
+CONFIG_CLEAN_VPATH_FILES =
 SCRIPTS = $(noinst_SCRIPTS)
 depcomp =
 am__depfiles_maybe =
@@ -142,6 +145,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -265,14 +269,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign  runtime/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --foreign  runtime/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign runtime/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --foreign runtime/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -290,6 +294,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 mono-wrapper: $(top_builddir)/config.status $(srcdir)/mono-wrapper.in
 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 monodis-wrapper: $(top_builddir)/config.status $(srcdir)/monodis-wrapper.in
@@ -333,6 +338,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -352,6 +358,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -360,18 +368,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -392,7 +410,7 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: install-am install-strip
+.MAKE: check-am install-am install-strip
 
 .PHONY: all all-am all-local check check-am check-local clean \
 	clean-generic clean-libtool clean-local distclean \
@@ -515,6 +533,7 @@ distdir: $(MYDISTFILES)
 	test -z '$(MYDISTFILES)' || for file in ''$(MYDISTFILES); do \
 	  cp -p $$file $(distdir) ; done
 	find $(distdir) -type f -exec chmod a+r {} ';'
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/samples/Makefile.in b/samples/Makefile.in
index ddd25e8..df92959 100644
--- a/samples/Makefile.in
+++ b/samples/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,8 +16,9 @@
 @SET_MAKE@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -46,6 +48,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -139,6 +142,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -236,14 +240,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  samples/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  samples/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu samples/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu samples/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -261,6 +265,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -290,13 +295,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -327,6 +336,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -345,6 +355,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -353,18 +365,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -410,6 +432,7 @@ dist-hook:
 	cp $(srcdir)/embed/test-invoke.c $(srcdir)/embed/invoke.cs $(distdir)/embed
 	cp $(srcdir)/size/sample.cs $(srcdir)/size/objectinspector.cs $(distdir)/size
 	cp $(srcdir)/size/size.c $(srcdir)/size/Makefile $(srcdir)/size/README $(distdir)/size
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/scripts/Makefile.in b/scripts/Makefile.in
index 61fbec7..5a08487 100644
--- a/scripts/Makefile.in
+++ b/scripts/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -49,8 +51,29 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES = mono-find-provides mono-find-requires
+CONFIG_CLEAN_VPATH_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+    $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+    *) f=$$p;; \
+  esac;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(bindir)"
-binSCRIPT_INSTALL = $(INSTALL_SCRIPT)
 SCRIPTS = $(bin_SCRIPTS)
 SOURCES =
 DIST_SOURCES =
@@ -145,6 +168,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -414,14 +438,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  scripts/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  scripts/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu scripts/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu scripts/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -439,6 +463,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 mono-find-provides: $(top_builddir)/config.status $(srcdir)/mono-find-provides.in
 	cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
 mono-find-requires: $(top_builddir)/config.status $(srcdir)/mono-find-requires.in
@@ -446,22 +471,37 @@ mono-find-requires: $(top_builddir)/config.status $(srcdir)/mono-find-requires.i
 install-binSCRIPTS: $(bin_SCRIPTS)
 	@$(NORMAL_INSTALL)
 	test -z "$(bindir)" || $(MKDIR_P) "$(DESTDIR)$(bindir)"
-	@list='$(bin_SCRIPTS)'; for p in $$list; do \
+	@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
+	for p in $$list; do \
 	  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-	  if test -f $$d$$p; then \
-	    f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
-	    echo " $(binSCRIPT_INSTALL) '$$d$$p' '$(DESTDIR)$(bindir)/$$f'"; \
-	    $(binSCRIPT_INSTALL) "$$d$$p" "$(DESTDIR)$(bindir)/$$f"; \
-	  else :; fi; \
-	done
+	  if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
+	done | \
+	sed -e 'p;s,.*/,,;n' \
+	    -e 'h;s|.*|.|' \
+	    -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
+	$(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
+	  { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
+	    if ($$2 == $$4) { files[d] = files[d] " " $$1; \
+	      if (++n[d] == $(am__install_max)) { \
+		print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
+	    else { print "f", d "/" $$4, $$1 } } \
+	  END { for (d in files) print "f", d, files[d] }' | \
+	while read type dir files; do \
+	     if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
+	     test -z "$$files" || { \
+	       echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
+	       $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
+	     } \
+	; done
 
 uninstall-binSCRIPTS:
 	@$(NORMAL_UNINSTALL)
-	@list='$(bin_SCRIPTS)'; for p in $$list; do \
-	  f=`echo "$$p" | sed 's|^.*/||;$(transform)'`; \
-	  echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
-	  rm -f "$(DESTDIR)$(bindir)/$$f"; \
-	done
+	@list='$(bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
+	files=`for p in $$list; do echo "$$p"; done | \
+	       sed -e 's,.*/,,;$(transform)'`; \
+	test -n "$$list" || exit 0; \
+	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
+	cd "$(DESTDIR)$(bindir)" && rm -f $$files
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -491,13 +531,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -529,6 +573,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
 
 maintainer-clean-generic:
@@ -548,6 +593,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -556,18 +603,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am: install-binSCRIPTS
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -654,6 +711,7 @@ $(MDOC_SUBCOMMANDS): Makefile
 		echo "#!/bin/sh" > $$script ;                   \
 		echo "exec mdoc $$cmd \"\$$@\"" >> $$script;    \
 	done
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/support/ChangeLog b/support/ChangeLog
index df1423e..32b21db 100644
--- a/support/ChangeLog
+++ b/support/ChangeLog
@@ -1,3 +1,16 @@
+2010-01-28 Gonzalo Paniagua Javier <gonzalo at novell.com>
+
+	* zlib-helper.c: no need for sync flush when compressing.
+	Thanks to Hin-Tak Leung.
+
+2009-12-16 Gonzalo Paniagua Javier <gonzalo at novell.com>
+
+	* zlib-helper.c: when finishing uncompressing a buffer, we might need
+	more than one call to deflate with Z_FINISH since the uncompressed
+	data can take more space than the allocated buffer.
+
+	Fixes the IPY+Chiron test case.
+
 2009-10-24 Gonzalo Paniagua Javier <gonzalo at novell.com>
 
 	* zlib-helper.c: stop trying to decompress when we get Z_STREAM_END.
diff --git a/support/Makefile.in b/support/Makefile.in
index 326ca50..95a7257 100644
--- a/support/Makefile.in
+++ b/support/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -16,8 +17,9 @@
 
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -47,14 +49,29 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
     $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
     *) f=$$p;; \
   esac;
-am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
+am__install_max = 40
+am__nobase_strip_setup = \
+  srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
+am__nobase_strip = \
+  for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
+am__nobase_list = $(am__nobase_strip_setup); \
+  for p in $$list; do echo "$$p $$p"; done | \
+  sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
+  $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
+    if (++n[$$2] == $(am__install_max)) \
+      { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
+    END { for (dir in files) print dir, files[dir] }'
+am__base_list = \
+  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
+  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__installdirs = "$(DESTDIR)$(libdir)"
-libLTLIBRARIES_INSTALL = $(INSTALL)
 LTLIBRARIES = $(lib_LTLIBRARIES)
 am__DEPENDENCIES_1 =
 @PLATFORM_WIN32_FALSE at am__DEPENDENCIES_2 = $(am__DEPENDENCIES_1)
@@ -103,6 +120,7 @@ libMonoSupportW_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
 DEFAULT_INCLUDES = -I. at am__isrc@ -I$(top_builddir)
 depcomp = $(SHELL) $(top_srcdir)/depcomp
 am__depfiles_maybe = depfiles
+am__mv = mv -f
 COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
 	$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
@@ -206,6 +224,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -417,14 +436,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  support/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  support/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu support/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu support/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -442,23 +461,28 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 install-libLTLIBRARIES: $(lib_LTLIBRARIES)
 	@$(NORMAL_INSTALL)
 	test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+	list2=; for p in $$list; do \
 	  if test -f $$p; then \
-	    f=$(am__strip_dir) \
-	    echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
-	    $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
+	    list2="$$list2 $$p"; \
 	  else :; fi; \
-	done
+	done; \
+	test -z "$$list2" || { \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \
+	}
 
 uninstall-libLTLIBRARIES:
 	@$(NORMAL_UNINSTALL)
-	@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
-	  p=$(am__strip_dir) \
-	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
-	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
+	@list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \
+	for p in $$list; do \
+	  $(am__strip_dir) \
+	  echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \
+	  $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \
 	done
 
 clean-libLTLIBRARIES:
@@ -528,45 +552,45 @@ distclean-compile:
 
 .c.o:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c $<
 
 .c.obj:
 @am__fastdepCC_TRUE@	$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(COMPILE) -c `$(CYGPATH_W) '$<'`
 
 .c.lo:
 @am__fastdepCC_TRUE@	$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
 @am__fastdepCC_FALSE@	$(LTCOMPILE) -c -o $@ $<
 
 ioapi.lo: minizip/ioapi.c
- at am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ioapi.lo -MD -MP -MF $(DEPDIR)/ioapi.Tpo -c -o ioapi.lo `test -f 'minizip/ioapi.c' || echo '$(srcdir)/'`minizip/ioapi.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/ioapi.Tpo $(DEPDIR)/ioapi.Plo
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT ioapi.lo -MD -MP -MF $(DEPDIR)/ioapi.Tpo -c -o ioapi.lo `test -f 'minizip/ioapi.c' || echo '$(srcdir)/'`minizip/ioapi.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/ioapi.Tpo $(DEPDIR)/ioapi.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='minizip/ioapi.c' object='ioapi.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ioapi.lo `test -f 'minizip/ioapi.c' || echo '$(srcdir)/'`minizip/ioapi.c
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o ioapi.lo `test -f 'minizip/ioapi.c' || echo '$(srcdir)/'`minizip/ioapi.c
 
 unzip.lo: minizip/unzip.c
- at am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT unzip.lo -MD -MP -MF $(DEPDIR)/unzip.Tpo -c -o unzip.lo `test -f 'minizip/unzip.c' || echo '$(srcdir)/'`minizip/unzip.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/unzip.Tpo $(DEPDIR)/unzip.Plo
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT unzip.lo -MD -MP -MF $(DEPDIR)/unzip.Tpo -c -o unzip.lo `test -f 'minizip/unzip.c' || echo '$(srcdir)/'`minizip/unzip.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/unzip.Tpo $(DEPDIR)/unzip.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='minizip/unzip.c' object='unzip.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o unzip.lo `test -f 'minizip/unzip.c' || echo '$(srcdir)/'`minizip/unzip.c
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o unzip.lo `test -f 'minizip/unzip.c' || echo '$(srcdir)/'`minizip/unzip.c
 
 zip.lo: minizip/zip.c
- at am__fastdepCC_TRUE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zip.lo -MD -MP -MF $(DEPDIR)/zip.Tpo -c -o zip.lo `test -f 'minizip/zip.c' || echo '$(srcdir)/'`minizip/zip.c
- at am__fastdepCC_TRUE@	mv -f $(DEPDIR)/zip.Tpo $(DEPDIR)/zip.Plo
+ at am__fastdepCC_TRUE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT zip.lo -MD -MP -MF $(DEPDIR)/zip.Tpo -c -o zip.lo `test -f 'minizip/zip.c' || echo '$(srcdir)/'`minizip/zip.c
+ at am__fastdepCC_TRUE@	$(am__mv) $(DEPDIR)/zip.Tpo $(DEPDIR)/zip.Plo
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	source='minizip/zip.c' object='zip.lo' libtool=yes @AMDEPBACKSLASH@
 @AMDEP_TRUE@@am__fastdepCC_FALSE@	DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- at am__fastdepCC_FALSE@	$(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zip.lo `test -f 'minizip/zip.c' || echo '$(srcdir)/'`minizip/zip.c
+ at am__fastdepCC_FALSE@	$(LIBTOOL)  --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o zip.lo `test -f 'minizip/zip.c' || echo '$(srcdir)/'`minizip/zip.c
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -579,14 +603,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
@@ -594,29 +618,34 @@ TAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS:  $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -637,13 +666,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -674,6 +707,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -695,6 +729,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -703,18 +739,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am: install-libLTLIBRARIES
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -797,6 +843,7 @@ patch-libtool:
 	sed -e 's,build_libtool_libs=no,build_libtool_libs=yes,g' libtool > 2; mv 2 libtool
 	sed -e 's,LIBTOOL =,LIBTOOL2 =,g' Makefile > 2 && echo "LIBTOOL = bash ./libtool" > 1 && cat 1 2 > Makefile
 	touch *.c
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/support/zlib-helper.c b/support/zlib-helper.c
index 5e11cb3..f8f1587 100644
--- a/support/zlib-helper.c
+++ b/support/zlib-helper.c
@@ -104,9 +104,11 @@ CloseZStream (ZStream *zstream)
 	status = 0;
 	if (zstream->compress) {
 		if (zstream->stream->total_out) {
-			status = deflate (zstream->stream, Z_FINISH);
-			flush_status = Flush (zstream);
-			if (status == Z_OK || status == Z_STREAM_END)
+			do {
+				status = deflate (zstream->stream, Z_FINISH);
+				flush_status = Flush (zstream);
+			} while (status == Z_OK); /* We want Z_STREAM_END or error here here */
+			if (status == Z_STREAM_END)
 				status = flush_status;
 		}
 		deflateEnd (zstream->stream);
@@ -205,7 +207,7 @@ WriteZStream (ZStream *stream, guchar *buffer, gint length)
 			zs->next_out = stream->buffer;
 			zs->avail_out = BUFFER_SIZE;
 		}
-		status = deflate (stream->stream, Z_SYNC_FLUSH);
+		status = deflate (stream->stream, Z_NO_FLUSH);
 		if (status != Z_OK && status != Z_STREAM_END)
 			return status;
 
diff --git a/tools/Makefile.in b/tools/Makefile.in
index 3ee7e51..607e93d 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,8 +16,9 @@
 @SET_MAKE@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -46,6 +48,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
@@ -57,10 +60,38 @@ RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
 	ps-recursive uninstall-recursive
 RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive	\
   distclean-recursive maintainer-clean-recursive
+AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
+	$(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
+	distdir
 ETAGS = etags
 CTAGS = ctags
 DIST_SUBDIRS = $(SUBDIRS)
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+am__relativize = \
+  dir0=`pwd`; \
+  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
+  sed_rest='s,^[^/]*/*,,'; \
+  sed_last='s,^.*/\([^/]*\)$$,\1,'; \
+  sed_butlast='s,/*[^/]*$$,,'; \
+  while test -n "$$dir1"; do \
+    first=`echo "$$dir1" | sed -e "$$sed_first"`; \
+    if test "$$first" != "."; then \
+      if test "$$first" = ".."; then \
+        dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \
+        dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \
+      else \
+        first2=`echo "$$dir2" | sed -e "$$sed_first"`; \
+        if test "$$first2" = "$$first"; then \
+          dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \
+        else \
+          dir2="../$$dir2"; \
+        fi; \
+        dir0="$$dir0"/"$$first"; \
+      fi; \
+    fi; \
+    dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
+  done; \
+  reldir="$$dir2"
 ACLOCAL = @ACLOCAL@
 AMTAR = @AMTAR@
 API_VER = @API_VER@
@@ -151,6 +182,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -249,14 +281,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tools/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  tools/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tools/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu tools/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -274,6 +306,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -305,7 +338,7 @@ $(RECURSIVE_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done; \
 	if test "$$dot_seen" = "no"; then \
@@ -339,16 +372,16 @@ $(RECURSIVE_CLEAN_TARGETS):
 	  else \
 	    local_target="$$target"; \
 	  fi; \
-	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
+	  ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
 	  || eval $$failcom; \
 	done && test -z "$$fail"
 tags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
 	done
 ctags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
-	  test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
+	  test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
 	done
 
 ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
@@ -356,14 +389,14 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
-	  $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
 	mkid -fID $$unique
 tags: TAGS
 
 TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
+	set x; \
 	here=`pwd`; \
 	if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
 	  include_option=--etags-include; \
@@ -375,7 +408,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test ! -f $$subdir/TAGS || \
-	      tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \
+	      set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
 	  fi; \
 	done; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
@@ -384,29 +417,34 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+	shift; \
+	if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
 	  test -n "$$unique" || unique=$$empty_fix; \
-	  $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
-	    $$tags $$unique; \
+	  if test $$# -gt 0; then \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      "$$@" $$unique; \
+	  else \
+	    $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+	      $$unique; \
+	  fi; \
 	fi
 ctags: CTAGS
 CTAGS: ctags-recursive $(HEADERS) $(SOURCES)  $(TAGS_DEPENDENCIES) \
 		$(TAGS_FILES) $(LISP)
-	tags=; \
 	list='$(SOURCES) $(HEADERS)  $(LISP) $(TAGS_FILES)'; \
 	unique=`for i in $$list; do \
 	    if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
 	  done | \
 	  $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
 	      END { if (nonempty) { for (i in files) print i; }; }'`; \
-	test -z "$(CTAGS_ARGS)$$tags$$unique" \
+	test -z "$(CTAGS_ARGS)$$unique" \
 	  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
-	     $$tags $$unique
+	     $$unique
 
 GTAGS:
 	here=`$(am__cd) $(top_builddir) && pwd` \
-	  && cd $(top_srcdir) \
-	  && gtags -i $(GTAGS_ARGS) $$here
+	  && $(am__cd) $(top_srcdir) \
+	  && gtags -i $(GTAGS_ARGS) "$$here"
 
 distclean-tags:
 	-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
@@ -427,29 +465,44 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
-	list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
 	  if test "$$subdir" = .; then :; else \
 	    test -d "$(distdir)/$$subdir" \
 	    || $(MKDIR_P) "$(distdir)/$$subdir" \
 	    || exit 1; \
-	    distdir=`$(am__cd) $(distdir) && pwd`; \
-	    top_distdir=`$(am__cd) $(top_distdir) && pwd`; \
-	    (cd $$subdir && \
+	  fi; \
+	done
+	@list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
+	  if test "$$subdir" = .; then :; else \
+	    dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
+	    $(am__relativize); \
+	    new_distdir=$$reldir; \
+	    dir1=$$subdir; dir2="$(top_distdir)"; \
+	    $(am__relativize); \
+	    new_top_distdir=$$reldir; \
+	    echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \
+	    echo "     am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \
+	    ($(am__cd) $$subdir && \
 	      $(MAKE) $(AM_MAKEFLAGS) \
-	        top_distdir="$$top_distdir" \
-	        distdir="$$distdir/$$subdir" \
+	        top_distdir="$$new_top_distdir" \
+	        distdir="$$new_distdir" \
 		am__remove_distdir=: \
 		am__skip_length_check=: \
+		am__skip_mode_fix=: \
 	        distdir) \
 	      || exit 1; \
 	  fi; \
@@ -479,6 +532,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -497,6 +551,8 @@ dvi-am:
 
 html: html-recursive
 
+html-am:
+
 info: info-recursive
 
 info-am:
@@ -505,18 +561,28 @@ install-data-am:
 
 install-dvi: install-dvi-recursive
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-recursive
 
+install-html-am:
+
 install-info: install-info-recursive
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-recursive
 
+install-pdf-am:
+
 install-ps: install-ps-recursive
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-recursive
@@ -537,8 +603,8 @@ ps-am:
 
 uninstall-am:
 
-.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \
-	install-strip
+.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \
+	install-am install-strip tags-recursive
 
 .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
 	all all-am check check-am clean clean-generic clean-libtool \
@@ -554,6 +620,7 @@ uninstall-am:
 	mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
 	uninstall uninstall-am
 
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/tools/locale-builder/ChangeLog b/tools/locale-builder/ChangeLog
index bbd0c60..8394253 100644
--- a/tools/locale-builder/ChangeLog
+++ b/tools/locale-builder/ChangeLog
@@ -1,3 +1,8 @@
+2010-01-06  Atsushi Enomoto  <atsushi at ximian.com>
+
+	* Driver.cs : support FirstDayOfWeek. Fixed bug #567944.
+	  Patch by Jose Antonio Sanchez Lazaro.
+
 2009-03-05  Marek Habersack  <mhabersack at novell.com>
 
 	* locales/en_TT.xml: added here since openi18n.org times out and
diff --git a/tools/locale-builder/Driver.cs b/tools/locale-builder/Driver.cs
index 5258604..d1bf317 100644
--- a/tools/locale-builder/Driver.cs
+++ b/tools/locale-builder/Driver.cs
@@ -661,6 +661,34 @@ namespace Mono.Tools.LocaleBuilder {
                                 if (pm != String.Empty)
                                         df.PMDesignator = pm;
 */
+				ni2 = (XPathNodeIterator) ni.Current.Evaluate
+("week/firstDay");
+				if (ni2.MoveNext ()) {
+					XPathNavigator weekday_nav = ni2.Current;
+					switch (weekday_nav.GetAttribute ("day", String.Empty)) {
+					case "sun":
+						df.FirstDayOfWeek = 0;
+						break;
+					case "mon":
+						df.FirstDayOfWeek = 1;
+						break;
+					case "tue":
+						df.FirstDayOfWeek = 2;
+						break;
+					case "wed":
+						df.FirstDayOfWeek = 3;
+						break;
+					case "thu":
+						df.FirstDayOfWeek = 4;
+						break;
+					case "fri":
+						df.FirstDayOfWeek = 5;
+						break;
+					case "sat":
+						df.FirstDayOfWeek = 6;
+						break;
+					}
+				}
 			}
 
                         string date_sep = (string) nav.Evaluate ("string(ldml/dates/symbols/dateSeparator)");
diff --git a/tools/locale-builder/Makefile.in b/tools/locale-builder/Makefile.in
index e125964..505f8bf 100644
--- a/tools/locale-builder/Makefile.in
+++ b/tools/locale-builder/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,8 +16,9 @@
 @SET_MAKE@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -46,6 +48,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -139,6 +142,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -365,14 +369,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  tools/locale-builder/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  tools/locale-builder/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tools/locale-builder/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu tools/locale-builder/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -390,6 +394,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -419,13 +424,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -454,6 +463,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -472,6 +482,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -480,18 +492,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -549,6 +571,7 @@ locale-data:
 
 install-culture-table: culture-info-tables.h
 	cp -f culture-info-tables.h ../../mono/metadata/.
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/web/Makefile.in b/web/Makefile.in
index c656524..f9f917e 100644
--- a/web/Makefile.in
+++ b/web/Makefile.in
@@ -1,8 +1,9 @@
-# Makefile.in generated by automake 1.10.1 from Makefile.am.
+# Makefile.in generated by automake 1.11 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005, 2006, 2007, 2008  Free Software Foundation, Inc.
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009  Free Software Foundation,
+# Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -15,8 +16,9 @@
 @SET_MAKE@
 VPATH = @srcdir@
 pkgdatadir = $(datadir)/@PACKAGE@
-pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
 am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
 install_sh_DATA = $(install_sh) -c -m 644
 install_sh_PROGRAM = $(install_sh) -c
@@ -47,6 +49,7 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
 mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
 SOURCES =
 DIST_SOURCES =
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
@@ -140,6 +143,7 @@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
 PACKAGE_NAME = @PACKAGE_NAME@
 PACKAGE_STRING = @PACKAGE_STRING@
 PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
 PACKAGE_VERSION = @PACKAGE_VERSION@
 PATH_SEPARATOR = @PATH_SEPARATOR@
 PKG_CONFIG = @PKG_CONFIG@
@@ -249,14 +253,14 @@ $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__confi
 	@for dep in $?; do \
 	  case '$(am__configure_deps)' in \
 	    *$$dep*) \
-	      cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
-		&& exit 0; \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
 	      exit 1;; \
 	  esac; \
 	done; \
-	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu  web/Makefile'; \
-	cd $(top_srcdir) && \
-	  $(AUTOMAKE) --gnu  web/Makefile
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu web/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu web/Makefile
 .PRECIOUS: Makefile
 Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
 	@case '$?' in \
@@ -274,6 +278,7 @@ $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
 $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
 	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
 
 mostlyclean-libtool:
 	-rm -f *.lo
@@ -303,13 +308,17 @@ distdir: $(DISTFILES)
 	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
 	  if test -d $$d/$$file; then \
 	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
 	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
-	      cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
 	    fi; \
-	    cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
 	  else \
-	    test -f $(distdir)/$$file \
-	    || cp -p $$d/$$file $(distdir)/$$file \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
 	    || exit 1; \
 	  fi; \
 	done
@@ -337,6 +346,7 @@ clean-generic:
 
 distclean-generic:
 	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -355,6 +365,8 @@ dvi-am:
 
 html: html-am
 
+html-am:
+
 info: info-am
 
 info-am:
@@ -363,18 +375,28 @@ install-data-am:
 
 install-dvi: install-dvi-am
 
+install-dvi-am:
+
 install-exec-am:
 
 install-html: install-html-am
 
+install-html-am:
+
 install-info: install-info-am
 
+install-info-am:
+
 install-man:
 
 install-pdf: install-pdf-am
 
+install-pdf-am:
+
 install-ps: install-ps-am
 
+install-ps-am:
+
 installcheck-am:
 
 maintainer-clean: maintainer-clean-am
@@ -430,6 +452,7 @@ push-notes:
 	scp release-notes/mono* www at www:/web/cvsmodules/mono/archive
 
 dummy:
+
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
diff --git a/web/devel-faq b/web/devel-faq
index 2bc1abd..c5b7a75 100644
--- a/web/devel-faq
+++ b/web/devel-faq
@@ -179,7 +179,7 @@ benefits:
 This mechanism works very well for GNOME and other projects.
 
 Q: Should I use any of the special RCS keywords like $Id: devel-faq 36980 2004-12-03 01:08:33Z benm $, $Author: benm $,
-   $Date: 2004-12-02 18:08:33 -0700 (Thu, 02 Dec 2004) $, or $Revision: 1.1 $?
+   $Date: 2004-12-03 01:08:33 +0000 (Fri, 03 Dec 2004) $, or $Revision: 1.1 $?
 
 A: Please avoid using those in the source code in the CVS.  They
    are not really useful, and they cause a lot of conflicts when

-- 
mono



More information about the Pkg-mono-svn-commits mailing list