This commit was manufactured by cvs2svn to create tag
'stable-2005-04-01'.

X-SVN-Rev: 17457
diff --git a/.cvsignore b/.cvsignore
new file mode 100644
index 0000000..9f8d6b5
--- /dev/null
+++ b/.cvsignore
@@ -0,0 +1,3 @@
+bin
+include
+lib
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..b482bf4
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,67 @@
+* text=auto !eol
+
+*.c text !eol
+*.cc text !eol
+*.classpath text !eol
+*.cpp text !eol
+*.css text !eol
+*.dsp text !eol
+*.dsw text !eol
+*.filters text !eol
+*.h text !eol
+*.htm text !eol
+*.html text !eol
+*.in text !eol
+*.java text !eol
+*.launch text !eol
+*.mak text !eol
+*.md text !eol
+*.MF text !eol
+*.mk text !eol
+*.pl text !eol
+*.pm text !eol
+*.project text !eol
+*.properties text !eol
+*.py text !eol
+*.rc text !eol
+*.sh text eol=lf
+*.sln text !eol
+*.stub text !eol
+*.txt text !eol
+*.ucm text !eol
+*.vcproj text !eol
+*.vcxproj text !eol
+*.xml text !eol
+*.xsl text !eol
+*.xslt text !eol
+Makefile text !eol
+configure text !eol
+LICENSE text !eol
+README text !eol
+
+*.bin -text
+*.brk -text
+*.cnv -text
+*.icu -text
+*.res -text
+*.nrm -text
+*.spp -text
+*.tri2 -text
+
+source/data/brkitr/thaidict.brk -text
+source/data/unidata/UCARules.txt -text
+source/samples/ucnv/data02.bin -text
+source/test/testdata/importtest.bin -text
+source/test/testdata/iscii.bin -text
+source/test/testdata/testdata_icu26_testtypes.res -text
+source/test/testdata/testdata_icu26e_testtypes.res -text
+source/test/testdata/uni-text.bin -text
+
+# The following file types are stored in Git-LFS.
+*.jar filter=lfs diff=lfs merge=lfs -text
+*.dat filter=lfs diff=lfs merge=lfs -text
+*.zip filter=lfs diff=lfs merge=lfs -text
+*.gz filter=lfs diff=lfs merge=lfs -text
+*.bz2 filter=lfs diff=lfs merge=lfs -text
+*.gif filter=lfs diff=lfs merge=lfs -text
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d94b50d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,342 @@
+/bin
+debian/*.debhelper
+debian/*.substvars
+debian/*files
+debian/*libicu[0-9]*
+debian/control
+debian/docs
+debian/icu
+debian/icu-data
+debian/icu-doc
+debian/icu-i18ndata
+debian/icu-locales
+debian/icu.postinst
+debian/icu.prerm
+debian/libicu-dev
+debian/postinst
+debian/prerm
+debian/tmp
+/include
+/lib
+source/Doxyfile
+source/Makefile
+source/README
+source/allinone/*.ncb
+source/allinone/*.opt
+source/allinone/*.suo
+source/bin
+source/common/*.ao
+source/common/*.d
+source/common/*.o
+source/common/*.plg
+source/common/Debug
+source/common/Makefile
+source/common/Release
+source/common/icucfg.h
+source/common/libicu*.*
+source/common/unicode/platform.h
+source/config.cache
+source/config.log
+source/config.status
+source/config/Makefile.inc
+source/config/icu-config
+source/config/icu-config.1
+source/data/*.plg
+source/data/Makefile
+source/data/icupkg.inc
+source/data/in
+source/data/out
+source/extra/Makefile
+source/extra/scrptrun/Makefile
+source/extra/uconv/*.d
+source/extra/uconv/*.o
+source/extra/uconv/Debug
+source/extra/uconv/Makefile
+source/extra/uconv/Release
+source/extra/uconv/pkgdata.inc
+source/extra/uconv/pkgdatain.txt
+source/extra/uconv/resources/*.res
+source/extra/uconv/uconv
+source/extra/uconv/uconv.1
+source/extra/uconv/uconv.plg
+source/extra/uconv/uconvmsg
+source/i18n/*.ao
+source/i18n/*.d
+source/i18n/*.o
+source/i18n/*.plg
+source/i18n/Debug
+source/i18n/Makefile
+source/i18n/Release
+source/icudefs.mk
+source/io/*.ao
+source/io/*.d
+source/io/*.o
+source/io/Debug
+source/io/Makefile
+source/io/Release
+source/layout/*.ao
+source/layout/*.d
+source/layout/*.o
+source/layout/*.pdb
+source/layout/Debug
+source/layout/Makefile
+source/layout/Release
+source/layoutex/*.ao
+source/layoutex/*.d
+source/layoutex/*.o
+source/layoutex/*.pdb
+source/layoutex/Debug
+source/layoutex/Makefile
+source/layoutex/Release
+source/lib
+source/samples/Makefile
+source/samples/cal/*.d
+source/samples/cal/*.pdb
+source/samples/cal/Debug
+source/samples/cal/Makefile
+source/samples/cal/Release
+source/samples/cal/icucal
+source/samples/date/*.d
+source/samples/date/*.pdb
+source/samples/date/Debug
+source/samples/date/Makefile
+source/samples/date/Release
+source/samples/date/icudate
+source/samples/layout/*.d
+source/samples/layout/*.pdb
+source/samples/layout/.#*
+source/samples/layout/Debug
+source/samples/layout/Makefile
+source/samples/layout/Release
+source/samples/layout/tmp
+source/stubdata/*.ao
+source/stubdata/*.d
+source/stubdata/*.o
+source/stubdata/*.plg
+source/stubdata/Debug
+source/stubdata/Makefile
+source/stubdata/Release
+source/stubdata/libicu*.*
+source/stubdata/stubdatabuilt.txt
+source/test/Makefile
+source/test/cintltst/*.d
+source/test/cintltst/*.o
+source/test/cintltst/*.plg
+source/test/cintltst/Debug
+source/test/cintltst/Makefile
+source/test/cintltst/Release
+source/test/cintltst/cintltst
+source/test/cintltst/cintltst.exe
+source/test/collperf/Makefile
+source/test/hdrtst/Makefile
+source/test/intltest/*.d
+source/test/intltest/*.o
+source/test/intltest/*.plg
+source/test/intltest/Debug
+source/test/intltest/Makefile
+source/test/intltest/Release
+source/test/intltest/intltest
+source/test/intltest/intltest.exe
+source/test/iotest/*.d
+source/test/iotest/*.o
+source/test/iotest/Debug
+source/test/iotest/Makefile
+source/test/iotest/Release
+source/test/iotest/iotest
+source/test/iotest/iotest.exe
+source/test/letest/*.d
+source/test/letest/*.pdb
+source/test/letest/.#*
+source/test/letest/Debug
+source/test/letest/Makefile
+source/test/letest/Release
+source/test/letest/tmp
+source/test/testdata/Makefile
+source/test/testdata/out
+source/test/testdata/pkgdata.inc
+source/test/testmap/*.d
+source/test/testmap/Debug
+source/test/testmap/Makefile
+source/test/testmap/Release
+source/test/testmap/testmap
+source/test/testmap/testmap.plg
+source/test/thaitest/Makefile
+source/test/threadtest/Makefile
+source/tools/Makefile
+source/tools/ctestfw/*.ao
+source/tools/ctestfw/*.d
+source/tools/ctestfw/*.o
+source/tools/ctestfw/*.pdb
+source/tools/ctestfw/Debug
+source/tools/ctestfw/Makefile
+source/tools/ctestfw/Release
+source/tools/ctestfw/libicutest*
+source/tools/ctestfw/pkgdata
+source/tools/dumpce/*.css
+source/tools/dumpce/*.d
+source/tools/dumpce/*.html
+source/tools/dumpce/*.o
+source/tools/dumpce/Makefile
+source/tools/dumpce/dumpce
+source/tools/genbidi/*.d
+source/tools/genbidi/*.o
+source/tools/genbidi/*.pdb
+source/tools/genbidi/*.plg
+source/tools/genbidi/Debug
+source/tools/genbidi/Makefile
+source/tools/genbidi/Release
+source/tools/genbidi/genbidi
+source/tools/genbidi/genbidi.[0-9]
+source/tools/genbrk/*.d
+source/tools/genbrk/*.o
+source/tools/genbrk/*.pdb
+source/tools/genbrk/*.plg
+source/tools/genbrk/Debug
+source/tools/genbrk/Makefile
+source/tools/genbrk/Release
+source/tools/genbrk/genbrk
+source/tools/gencase/*.d
+source/tools/gencase/*.o
+source/tools/gencase/*.pdb
+source/tools/gencase/Debug
+source/tools/gencase/Makefile
+source/tools/gencase/Release
+source/tools/gencase/gencase
+source/tools/gencase/gencase.[0-9]
+source/tools/genccode/*.d
+source/tools/genccode/*.o
+source/tools/genccode/*.pdb
+source/tools/genccode/*.plg
+source/tools/genccode/Debug
+source/tools/genccode/Makefile
+source/tools/genccode/Release
+source/tools/genccode/genccode
+source/tools/genccode/genccode.8
+source/tools/gencmn/*.d
+source/tools/gencmn/*.o
+source/tools/gencmn/*.pdb
+source/tools/gencmn/*.plg
+source/tools/gencmn/Debug
+source/tools/gencmn/Makefile
+source/tools/gencmn/Release
+source/tools/gencmn/decmn
+source/tools/gencmn/decmn.[0-9]
+source/tools/gencmn/decmn_win32_Debug
+source/tools/gencmn/decmn_win32_Release
+source/tools/gencmn/gencmn
+source/tools/gencmn/gencmn.[0-9]
+source/tools/gencnval/*.d
+source/tools/gencnval/*.o
+source/tools/gencnval/*.pdb
+source/tools/gencnval/Debug
+source/tools/gencnval/Makefile
+source/tools/gencnval/Release
+source/tools/gencnval/gencnval
+source/tools/gencnval/gencnval.[0-9]
+source/tools/gennames/*.d
+source/tools/gennames/*.o
+source/tools/gennames/*.pdb
+source/tools/gennames/Debug
+source/tools/gennames/Makefile
+source/tools/gennames/Release
+source/tools/gennames/gennames
+source/tools/gennames/gennames.8
+source/tools/gennorm/*.d
+source/tools/gennorm/*.o
+source/tools/gennorm/*.pdb
+source/tools/gennorm/*.plg
+source/tools/gennorm/Debug
+source/tools/gennorm/Makefile
+source/tools/gennorm/Release
+source/tools/gennorm/gennorm
+source/tools/gennorm/gennorm.[0-9]
+source/tools/genpname/*.d
+source/tools/genpname/*.o
+source/tools/genpname/*.pdb
+source/tools/genpname/*.plg
+source/tools/genpname/Debug
+source/tools/genpname/Makefile
+source/tools/genpname/Release
+source/tools/genpname/genpname
+source/tools/genprops/*.d
+source/tools/genprops/*.o
+source/tools/genprops/*.pdb
+source/tools/genprops/Debug
+source/tools/genprops/Makefile
+source/tools/genprops/Release
+source/tools/genprops/genprops
+source/tools/genprops/genprops.[0-9]
+source/tools/genrb/*.d
+source/tools/genrb/*.o
+source/tools/genrb/*.pdb
+source/tools/genrb/*.plg
+source/tools/genrb/Debug
+source/tools/genrb/Makefile
+source/tools/genrb/Release
+source/tools/genrb/derb
+source/tools/genrb/derb.[0-9]
+source/tools/genrb/derb_*
+source/tools/genrb/genrb
+source/tools/genrb/genrb.[0-9]
+source/tools/gensprep/*.d
+source/tools/gensprep/*.o
+source/tools/gensprep/*.pdb
+source/tools/gensprep/Debug
+source/tools/gensprep/Makefile
+source/tools/gensprep/Release
+source/tools/gensprep/gensprep
+source/tools/gensprep/gensprep.8
+source/tools/gensprep/gensprep.plg
+source/tools/gentest/*.d
+source/tools/gentest/*.o
+source/tools/gentest/*.pdb
+source/tools/gentest/Debug
+source/tools/gentest/Makefile
+source/tools/gentest/Release
+source/tools/gentest/gentest
+source/tools/genuca/*.d
+source/tools/genuca/*.o
+source/tools/genuca/*.pdb
+source/tools/genuca/Debug
+source/tools/genuca/Makefile
+source/tools/genuca/Release
+source/tools/genuca/genuca
+source/tools/genuca/genuca.8
+source/tools/icuswap/*.d
+source/tools/icuswap/*.ncb
+source/tools/icuswap/*.o
+source/tools/icuswap/*.opt
+source/tools/icuswap/*.pdb
+source/tools/icuswap/*.plg
+source/tools/icuswap/Debug
+source/tools/icuswap/Makefile
+source/tools/icuswap/Release
+source/tools/icuswap/icuswap
+source/tools/icuswap/icuswap.[0-9]
+source/tools/makeconv/*.d
+source/tools/makeconv/*.o
+source/tools/makeconv/*.pdb
+source/tools/makeconv/*.plg
+source/tools/makeconv/Debug
+source/tools/makeconv/Makefile
+source/tools/makeconv/Release
+source/tools/makeconv/makeconv
+source/tools/makeconv/makeconv.[0-9]
+source/tools/pkgdata/*.d
+source/tools/pkgdata/*.ncb
+source/tools/pkgdata/*.o
+source/tools/pkgdata/*.opt
+source/tools/pkgdata/*.pdb
+source/tools/pkgdata/Debug
+source/tools/pkgdata/Makefile
+source/tools/pkgdata/Release
+source/tools/pkgdata/icupkg.inc
+source/tools/pkgdata/pkgdata
+source/tools/pkgdata/pkgdata.[0-9]
+source/tools/toolutil/*.d
+source/tools/toolutil/*.o
+source/tools/toolutil/*.pdb
+source/tools/toolutil/Debug
+source/tools/toolutil/Makefile
+source/tools/toolutil/Release
+source/tools/toolutil/libicu*
diff --git a/as_is/os390/unpax-icu.sh b/as_is/os390/unpax-icu.sh
new file mode 100755
index 0000000..f5c7fdc
--- /dev/null
+++ b/as_is/os390/unpax-icu.sh
@@ -0,0 +1,127 @@
+#!/bin/sh
+# Copyright (C) 2001 - 2003, International Business Machines Corporation.      
+# All Rights Reserved.                                                       
+#
+# Authors:
+# Ami Fixler
+# Steven R. Loomis <srl@jtcsv.com>
+# George Rhoten
+#
+# Shell script to unpax ICU and convert the files to an EBCDIC codepage.
+# After extracting to EBCDIC, binary files are re-extracted without the
+# EBCDIC conversion, thus restoring them to original codepage.
+#
+# Set the following variable to the list of binary file suffixes (extensions)
+
+#binary_suffixes='ico ICO bmp BMP jpg JPG gif GIF brk BRK'
+#ICU specific binary files
+binary_suffixes='brk BRK bin BIN res RES cnv CNV dat DAT icu ICU spp SPP'
+
+usage()
+{
+  echo "Enter archive filename as a parameter: $0 icu-archive.tar [strip]"
+  echo "(strip is an option to remove hex '0D' carraige returns)"
+}
+# first make sure we at least one arg and it's a file we can read
+if [ $# -eq 0 ]; then
+  usage
+  exit
+fi
+if [ ! -r $1 ]; then
+  echo "$1 does not exist or cannot be read."
+  usage
+  exit
+fi
+# set up a few variables
+
+echo ""
+echo "Extracting from $1 ..."
+echo ""
+# extract files while converting them to EBCDIC
+pax -rvf $1 -o to=IBM-1047,from=ISO8859-1
+
+if [ $# -gt 1 ]; then 
+  if [ $2 -eq strip ]; then
+    echo ""
+    echo "Stripping hex 0d characters ..."
+    for i in $(pax -f $1 2>/dev/null)
+    do
+      case $i in
+        */)
+         # then this entry is a directory
+         ;;
+        *)
+          # then this entry is NOT a directory
+          tr -d 
+ <$i >@@@icu@tmp
+          chmod +w $i
+          rm $i
+          mv @@@icu@tmp $i
+          ;;
+       esac
+    done
+  fi
+fi
+
+echo ""
+echo "Determining binary files ..."
+echo ""
+
+#for dir in `find ./icu -type d \( -name CVS -o -print \)`; do
+#    if [ -f $dir/CVS/Entries ]; then
+#        binary_files="$binary_files`cat $dir/CVS/Entries | fgrep -- -kb \
+#                      | cut -d / -f2 | sed -e "s%^%$dir/%" \
+#                      | sed -e "s%^\./%%" | tr '\n' ' '`"
+#    fi
+#done
+#echo "Detecting Unicode files"
+for file in `find icu \( -name \*.txt -print \)`; do
+    bom8=`head -c 3 $file|\
+          od -t x1|\
+          head -n 1|\
+          sed 's/  */ /g'|\
+          cut -f2-4 -d ' '|\
+          tr 'A-Z' 'a-z'`;
+    #Find a converted UTF-8 BOM
+    if test "$bom8" = "57 8b ab"
+    then
+        binary_files="$binary_files $file";
+    fi
+done
+
+for i in $(pax -f $1 2>/dev/null)
+do
+  case $i in
+    */)
+#    then this entry is a directory
+     ;;
+    *.*)
+#    then this entry has a dot in the filename
+     for j in $binary_suffixes
+     do
+       suf=${i#*.*}
+       if [ "$suf" = "$j" ]
+       then
+         binary_files="$binary_files $i"
+         break
+       fi
+     done
+     ;;
+    *)
+#    then this entry does not have a dot in it
+     ;;
+  esac
+done
+
+# now see if a re-extract of binary files is necessary
+if [ ${#binary_files} -eq 0 ]; then
+  echo ""
+  echo "There are no binary files to restore."
+else
+  echo "Restoring binary files ..."
+  echo ""
+  rm $binary_files
+  pax -rvf $1 $binary_files
+fi
+echo ""
+echo "$0 has completed extracting ICU from $1."
diff --git a/as_is/os400/configure b/as_is/os400/configure
new file mode 100755
index 0000000..60877ad
--- /dev/null
+++ b/as_is/os400/configure
@@ -0,0 +1,4700 @@
+#! /usr/bin/qsh
+
+# Guess values for system-dependent variables and create Makefiles.
+# Generated automatically using autoconf version 2.13 
+# Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
+#
+# This configure script is free software; the Free Software Foundation
+# gives unlimited permission to copy, distribute and modify it.
+
+# Defaults:
+ac_help=
+ac_default_prefix=/usr/local
+# Any additions from configure.in:
+ac_help="$ac_help
+  --enable-strict         compile with strict compiler options [default=no]"
+ac_help="$ac_help
+  --enable-64bit-libs     build 64-bit libraries [default=yes]"
+ac_help="$ac_help
+  --enable-shared         build shared libraries [default=yes]"
+ac_help="$ac_help
+  --enable-static         build static libraries [default=no]"
+ac_help="$ac_help
+  --enable-debug          build debug libraries [default=no]"
+ac_help="$ac_help
+  --enable-release        build release libraries [default=yes]"
+ac_help="$ac_help
+  --enable-renaming       add a version suffix to symbols [default=yes]"
+ac_help="$ac_help
+  --enable-tracing        enable function and data tracing [default=yes]"
+ac_help="$ac_help
+  --enable-rpath          use rpath when linking [default is only if necessary]"
+ac_help="$ac_help
+  --enable-threads        build ICU with thread safety [default=yes]"
+ac_help="$ac_help
+  --with-iostream=version specify the version of iostream to use (none, old, std, auto) [default=auto]"
+ac_help="$ac_help
+  --enable-extras         build ICU extras [default=yes]"
+ac_help="$ac_help
+  --enable-icuio          build ICU's icuio library [default=yes]"
+ac_help="$ac_help
+  --enable-layout         build ICU's layout library [default=yes]"
+ac_help="$ac_help
+  --with-data-packaging=type specify how to package ICU data (files, archive, library, auto) [default=auto]"
+ac_help="$ac_help
+"
+ac_help="$ac_help
+  --with-library-suffix=suffix    tag a suffix to the library names [default=]"
+ac_help="$ac_help
+  --enable-tests          build ICU tests [default=yes]"
+ac_help="$ac_help
+  --enable-samples        build ICU samples [default=yes]  
+Additionally, the variable FORCE_LIBS may be set before calling configure. If set, it will REPLACE any automatic list of libraries."
+
+# Initialize some variables set by options.
+# The variables have the same names as the options, with
+# dashes changed to underlines.
+build=NONE
+cache_file=./config.cache
+exec_prefix=NONE
+host=NONE
+no_create=
+nonopt=NONE
+no_recursion=
+prefix=NONE
+program_prefix=NONE
+program_suffix=NONE
+program_transform_name=s,x,x,
+silent=
+site=
+srcdir=
+target=NONE
+verbose=
+x_includes=NONE
+x_libraries=NONE
+bindir='${exec_prefix}/bin'
+sbindir='${exec_prefix}/sbin'
+libexecdir='${exec_prefix}/libexec'
+datadir='${prefix}/share'
+sysconfdir='${prefix}/etc'
+sharedstatedir='${prefix}/com'
+localstatedir='${prefix}/var'
+libdir='${exec_prefix}/lib'
+includedir='${prefix}/include'
+oldincludedir='/usr/include'
+infodir='${prefix}/info'
+mandir='${prefix}/man'
+
+# Initialize some other variables.
+subdirs=
+MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/usr/bin/qsh}
+# Maximum number of lines to put in a shell here document.
+ac_max_here_lines=12
+
+ac_prev=
+for ac_option
+do
+
+  # If the previous option needs an argument, assign it.
+  if test -n "$ac_prev"; then
+    eval "$ac_prev=\$ac_option"
+    ac_prev=
+    continue
+  fi
+
+  case "$ac_option" in
+  -*=*) ac_optarg=`echo "$ac_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
+  *) ac_optarg= ;;
+  esac
+
+  # Accept the important Cygnus configure options, so we can diagnose typos.
+
+  case "$ac_option" in
+
+  -bindir | --bindir | --bindi | --bind | --bin | --bi)
+    ac_prev=bindir ;;
+  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
+    bindir="$ac_optarg" ;;
+
+  -build | --build | --buil | --bui | --bu)
+    ac_prev=build ;;
+  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
+    build="$ac_optarg" ;;
+
+  -cache-file | --cache-file | --cache-fil | --cache-fi \
+  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
+    ac_prev=cache_file ;;
+  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
+  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
+    cache_file="$ac_optarg" ;;
+
+  -datadir | --datadir | --datadi | --datad | --data | --dat | --da)
+    ac_prev=datadir ;;
+  -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \
+  | --da=*)
+    datadir="$ac_optarg" ;;
+
+  -disable-* | --disable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*disable-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    eval "enable_${ac_feature}=no" ;;
+
+  -enable-* | --enable-*)
+    ac_feature=`echo $ac_option|sed -e 's/-*enable-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_feature| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_feature: invalid feature name" 1>&2; exit 1; }
+    fi
+    ac_feature=`echo $ac_feature| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "enable_${ac_feature}='$ac_optarg'" ;;
+
+  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
+  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
+  | --exec | --exe | --ex)
+    ac_prev=exec_prefix ;;
+  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
+  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
+  | --exec=* | --exe=* | --ex=*)
+    exec_prefix="$ac_optarg" ;;
+
+  -gas | --gas | --ga | --g)
+    # Obsolete; use --with-gas.
+    with_gas=yes ;;
+
+  -help | --help | --hel | --he)
+    # Omit some internal or obsolete options to make the list less imposing.
+    # This message is too long to be a string in the A/UX 3.1 sh.
+    cat << EOF
+Usage: configure [options] [host]
+Options: [defaults in brackets after descriptions]
+Configuration:
+  --cache-file=FILE       cache test results in FILE
+  --help                  print this message
+  --no-create             do not create output files
+  --quiet, --silent       do not print \`checking...' messages
+  --version               print the version of autoconf that created configure
+Directory and file names:
+  --prefix=PREFIX         install architecture-independent files in PREFIX
+                          [$ac_default_prefix]
+  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
+                          [same as prefix]
+  --bindir=DIR            user executables in DIR [EPREFIX/bin]
+  --sbindir=DIR           system admin executables in DIR [EPREFIX/sbin]
+  --libexecdir=DIR        program executables in DIR [EPREFIX/libexec]
+  --datadir=DIR           read-only architecture-independent data in DIR
+                          [PREFIX/share]
+  --sysconfdir=DIR        read-only single-machine data in DIR [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data in DIR
+                          [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data in DIR [PREFIX/var]
+  --libdir=DIR            object code libraries in DIR [EPREFIX/lib]
+  --includedir=DIR        C header files in DIR [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc in DIR [/usr/include]
+  --infodir=DIR           info documentation in DIR [PREFIX/info]
+  --mandir=DIR            man documentation in DIR [PREFIX/man]
+  --srcdir=DIR            find the sources in DIR [configure dir or ..]
+  --program-prefix=PREFIX prepend PREFIX to installed program names
+  --program-suffix=SUFFIX append SUFFIX to installed program names
+  --program-transform-name=PROGRAM
+                          run sed PROGRAM on installed program names
+EOF
+    cat << EOF
+Host type:
+  --build=BUILD           configure for building on BUILD [BUILD=HOST]
+  --host=HOST             configure for HOST [guessed]
+  --target=TARGET         configure for TARGET [TARGET=HOST]
+Features and packages:
+  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
+  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
+  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
+  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
+  --x-includes=DIR        X include files are in DIR
+  --x-libraries=DIR       X library files are in DIR
+EOF
+    if test -n "$ac_help"; then
+      echo "--enable and --with options recognized:$ac_help"
+    fi
+    exit 0 ;;
+
+  -host | --host | --hos | --ho)
+    ac_prev=host ;;
+  -host=* | --host=* | --hos=* | --ho=*)
+    host="$ac_optarg" ;;
+
+  -includedir | --includedir | --includedi | --included | --include \
+  | --includ | --inclu | --incl | --inc)
+    ac_prev=includedir ;;
+  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
+  | --includ=* | --inclu=* | --incl=* | --inc=*)
+    includedir="$ac_optarg" ;;
+
+  -infodir | --infodir | --infodi | --infod | --info | --inf)
+    ac_prev=infodir ;;
+  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
+    infodir="$ac_optarg" ;;
+
+  -libdir | --libdir | --libdi | --libd)
+    ac_prev=libdir ;;
+  -libdir=* | --libdir=* | --libdi=* | --libd=*)
+    libdir="$ac_optarg" ;;
+
+  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
+  | --libexe | --libex | --libe)
+    ac_prev=libexecdir ;;
+  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
+  | --libexe=* | --libex=* | --libe=*)
+    libexecdir="$ac_optarg" ;;
+
+  -localstatedir | --localstatedir | --localstatedi | --localstated \
+  | --localstate | --localstat | --localsta | --localst \
+  | --locals | --local | --loca | --loc | --lo)
+    ac_prev=localstatedir ;;
+  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
+  | --localstate=* | --localstat=* | --localsta=* | --localst=* \
+  | --locals=* | --local=* | --loca=* | --loc=* | --lo=*)
+    localstatedir="$ac_optarg" ;;
+
+  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
+    ac_prev=mandir ;;
+  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
+    mandir="$ac_optarg" ;;
+
+  -nfp | --nfp | --nf)
+    # Obsolete; use --without-fp.
+    with_fp=no ;;
+
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c)
+    no_create=yes ;;
+
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
+    no_recursion=yes ;;
+
+  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
+  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
+  | --oldin | --oldi | --old | --ol | --o)
+    ac_prev=oldincludedir ;;
+  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
+  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
+  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
+    oldincludedir="$ac_optarg" ;;
+
+  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
+    ac_prev=prefix ;;
+  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
+    prefix="$ac_optarg" ;;
+
+  -program-prefix | --program-prefix | --program-prefi | --program-pref \
+  | --program-pre | --program-pr | --program-p)
+    ac_prev=program_prefix ;;
+  -program-prefix=* | --program-prefix=* | --program-prefi=* \
+  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
+    program_prefix="$ac_optarg" ;;
+
+  -program-suffix | --program-suffix | --program-suffi | --program-suff \
+  | --program-suf | --program-su | --program-s)
+    ac_prev=program_suffix ;;
+  -program-suffix=* | --program-suffix=* | --program-suffi=* \
+  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
+    program_suffix="$ac_optarg" ;;
+
+  -program-transform-name | --program-transform-name \
+  | --program-transform-nam | --program-transform-na \
+  | --program-transform-n | --program-transform- \
+  | --program-transform | --program-transfor \
+  | --program-transfo | --program-transf \
+  | --program-trans | --program-tran \
+  | --progr-tra | --program-tr | --program-t)
+    ac_prev=program_transform_name ;;
+  -program-transform-name=* | --program-transform-name=* \
+  | --program-transform-nam=* | --program-transform-na=* \
+  | --program-transform-n=* | --program-transform-=* \
+  | --program-transform=* | --program-transfor=* \
+  | --program-transfo=* | --program-transf=* \
+  | --program-trans=* | --program-tran=* \
+  | --progr-tra=* | --program-tr=* | --program-t=*)
+    program_transform_name="$ac_optarg" ;;
+
+  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
+  | -silent | --silent | --silen | --sile | --sil)
+    silent=yes ;;
+
+  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
+    ac_prev=sbindir ;;
+  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
+  | --sbi=* | --sb=*)
+    sbindir="$ac_optarg" ;;
+
+  -sharedstatedir | --sharedstatedir | --sharedstatedi \
+  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
+  | --sharedst | --shareds | --shared | --share | --shar \
+  | --sha | --sh)
+    ac_prev=sharedstatedir ;;
+  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
+  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
+  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
+  | --sha=* | --sh=*)
+    sharedstatedir="$ac_optarg" ;;
+
+  -site | --site | --sit)
+    ac_prev=site ;;
+  -site=* | --site=* | --sit=*)
+    site="$ac_optarg" ;;
+
+  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
+    ac_prev=srcdir ;;
+  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
+    srcdir="$ac_optarg" ;;
+
+  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
+  | --syscon | --sysco | --sysc | --sys | --sy)
+    ac_prev=sysconfdir ;;
+  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
+  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
+    sysconfdir="$ac_optarg" ;;
+
+  -target | --target | --targe | --targ | --tar | --ta | --t)
+    ac_prev=target ;;
+  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
+    target="$ac_optarg" ;;
+
+  -v | -verbose | --verbose | --verbos | --verbo | --verb)
+    verbose=yes ;;
+
+  -version | --version | --versio | --versi | --vers)
+    echo "configure generated by autoconf version 2.13"
+    exit 0 ;;
+
+  -with-* | --with-*)
+    ac_package=`echo $ac_option|sed -e 's/-*with-//' -e 's/=.*//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-_a-zA-Z0-9]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    case "$ac_option" in
+      *=*) ;;
+      *) ac_optarg=yes ;;
+    esac
+    eval "with_${ac_package}='$ac_optarg'" ;;
+
+  -without-* | --without-*)
+    ac_package=`echo $ac_option|sed -e 's/-*without-//'`
+    # Reject names that are not valid shell variable names.
+    if test -n "`echo $ac_package| sed 's/[-a-zA-Z0-9_]//g'`"; then
+      { echo "configure: error: $ac_package: invalid package name" 1>&2; exit 1; }
+    fi
+    ac_package=`echo $ac_package| sed 's/-/_/g'`
+    eval "with_${ac_package}=no" ;;
+
+  --x)
+    # Obsolete; use --with-x.
+    with_x=yes ;;
+
+  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
+  | --x-incl | --x-inc | --x-in | --x-i)
+    ac_prev=x_includes ;;
+  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
+  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
+    x_includes="$ac_optarg" ;;
+
+  -x-libraries | --x-libraries | --x-librarie | --x-librari \
+  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
+    ac_prev=x_libraries ;;
+  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
+  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
+    x_libraries="$ac_optarg" ;;
+
+  -*) { echo "configure: error: $ac_option: invalid option; use --help to show usage" 1>&2; exit 1; }
+    ;;
+
+  *)
+    if test -n "`echo $ac_option| sed 's/[-a-z0-9.]//g'`"; then
+      echo "configure: warning: $ac_option: invalid host type" 1>&2
+    fi
+    if test "x$nonopt" != xNONE; then
+      { echo "configure: error: can only configure for one host and one target at a time" 1>&2; exit 1; }
+    fi
+    nonopt="$ac_option"
+    ;;
+
+  esac
+done
+
+if test -n "$ac_prev"; then
+  { echo "configure: error: missing argument to --`echo $ac_prev | sed 's/_/-/g'`" 1>&2; exit 1; }
+fi
+
+trap 'del -f conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+# File descriptor usage:
+# 0 standard input
+# 1 file creation
+# 2 errors and warnings
+# 3 some systems may open it to /dev/tty
+# 4 used on the Kubota Titan
+# 6 checking for... messages and results
+# 5 compiler messages saved in config.log
+if test "$silent" = yes; then
+  exec 6>/dev/null
+else
+  exec 6>&1
+fi
+exec 5>./config.log
+
+echo "\
+This file contains any messages produced by compilers while
+running configure, to aid debugging if configure makes a mistake.
+" 1>&5
+
+# Strip out --no-create and --no-recursion so they do not pile up.
+# Also quote any args containing shell metacharacters.
+ac_configure_args=
+for ac_arg
+do
+  case "$ac_arg" in
+  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
+  | --no-cr | --no-c) ;;
+  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
+  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ;;
+  *" "*|*"	"*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?]*)
+  ac_configure_args="$ac_configure_args '$ac_arg'" ;;
+  *) ac_configure_args="$ac_configure_args $ac_arg" ;;
+  esac
+done
+
+# NLS nuisances.
+# Only set these to C if already set.  These must not be set unconditionally
+# because not all systems understand e.g. LANG=C (notably SCO).
+# Fixing LC_MESSAGES prevents Solaris sh from translating var values in `set'!
+# Non-C LC_CTYPE values break the ctype check.
+if test "${LANG+set}"   = set; then LANG=C;   export LANG;   fi
+if test "${LC_ALL+set}" = set; then LC_ALL=C; export LC_ALL; fi
+if test "${LC_MESSAGES+set}" = set; then LC_MESSAGES=C; export LC_MESSAGES; fi
+if test "${LC_CTYPE+set}"    = set; then LC_CTYPE=C;    export LC_CTYPE;    fi
+
+# confdefs.h avoids OS command line length limits that DEFS can exceed.
+del -f conftest* confdefs.h
+# AIX cpp loses on an empty file, so make sure it contains at least a newline.
+echo > confdefs.h
+
+# A filename unique to this package, relative to the directory that
+# configure is in, which we can look for to find out if srcdir is correct.
+ac_unique_file=common/unicode/utypes.h
+
+# Find the source files, if location was not specified.
+if test -z "$srcdir"; then
+  ac_srcdir_defaulted=yes
+  # Try the directory containing this script, then its parent.
+  ac_prog=$0
+  ac_confdir=`echo $ac_prog|sed 's%/[^/][^/]*$%%'`
+  test "x$ac_confdir" = "x$ac_prog" && ac_confdir=.
+  srcdir=$ac_confdir
+  if test ! -r $srcdir/$ac_unique_file; then
+    srcdir=..
+  fi
+else
+  ac_srcdir_defaulted=no
+fi
+if test ! -r $srcdir/$ac_unique_file; then
+  if test "$ac_srcdir_defaulted" = yes; then
+    { echo "configure: error: can not find sources in $ac_confdir or .." 1>&2; exit 1; }
+  else
+    { echo "configure: error: can not find sources in $srcdir" 1>&2; exit 1; }
+  fi
+fi
+srcdir=`echo "${srcdir}" | sed 's%\([^/]\)/*$%\1%'`
+
+# Prefer explicitly selected file to automatically selected ones.
+if test -z "$CONFIG_SITE"; then
+  if test "x$prefix" != xNONE; then
+    CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site"
+  else
+    CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site"
+  fi
+fi
+for ac_site_file in $CONFIG_SITE; do
+  if test -r "$ac_site_file"; then
+    echo "loading site script $ac_site_file"
+    . "$ac_site_file"
+  fi
+done
+
+if test -r "$cache_file"; then
+  echo "loading cache $cache_file"
+  . $cache_file
+else
+  echo "creating cache $cache_file"
+  > $cache_file
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+ac_exeext=
+ac_objext=o
+if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
+  # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
+  if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
+    ac_n= ac_c='
+' ac_t='	'
+  else
+    ac_n=-n ac_c= ac_t=
+  fi
+else
+  ac_n= ac_c='\c' ac_t=
+fi
+
+
+
+
+PACKAGE="icu"
+
+
+echo $ac_n "checking for ICU version numbers""... $ac_c" 1>&6
+echo "configure:570: checking for ICU version numbers" >&5
+
+geticuversion() {
+    sed -n 's/^[ 	]*#[ 	]*define[ 	]*U_ICU_VERSION[ 	]*"\([^"]*\)".*/\1/p' "$@"
+}
+VERSION=`geticuversion $srcdir/common/unicode/uversion.h`
+if test x"$VERSION" = x; then
+    VERSION=`geticuversion $srcdir/common/unicode/*.h`
+    if test x"$VERSION" = x; then
+        { echo "configure: error: Cannot determine ICU version number from header files" 1>&2; exit 1; }
+    fi
+fi
+LIB_VERSION=`echo $VERSION | sed -e 's/\.//' -e 's/^\([^.]*\)$/\1.0/'`
+LIB_VERSION_MAJOR=`echo $LIB_VERSION | sed 's/\..*//'`
+
+
+
+echo "$ac_t""release $VERSION, library $LIB_VERSION" 1>&6
+
+UNICODE_VERSION="4.1"
+
+
+
+#AC_SUBST(CINTLTST_CPPFLAGS)
+
+# Extract the first word of "gcc", so it can be a program name with args.
+set dummy gcc; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:598: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      ac_cv_prog_CC="gcc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+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
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:628: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_prog_rejected=no
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
+        ac_prog_rejected=yes
+	continue
+      fi
+      ac_cv_prog_CC="cc"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+if test $ac_prog_rejected = yes; then
+  # We found a bogon in the path, so make sure we never use it.
+  set dummy $ac_cv_prog_CC
+  shift
+  if test $# -gt 0; then
+    # We chose a different compiler from the bogus one.
+    # However, it has the same basename, so the bogon will be chosen
+    # first if we set CC to just the basename; use the full file name.
+    shift
+    set dummy "$ac_dir/$ac_word" "$@"
+    shift
+    ac_cv_prog_CC="$@"
+  fi
+fi
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  if test -z "$CC"; then
+    case "`uname -s`" in
+    *win32* | *WIN32*)
+      # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:679: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      ac_cv_prog_CC="cl"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+ ;;
+    esac
+  fi
+  test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:711: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+cat > conftest.$ac_ext << EOF
+
+#line 722 "configure"
+#include "confdefs.h"
+
+main(){return(0);}
+EOF
+if { (eval echo configure:727: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  ac_cv_prog_cc_works=yes
+  # If we can't run a trivial program, we are probably using a cross compiler.
+  if (./conftest; exit) 2>/dev/null; then
+    ac_cv_prog_cc_cross=no
+  else
+    ac_cv_prog_cc_cross=yes
+  fi
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  ac_cv_prog_cc_works=no
+fi
+del -f conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
+if test $ac_cv_prog_cc_works = no; then
+  { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:753: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
+echo "configure:758: checking whether we are using GNU C" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.c <<EOF
+#ifdef __GNUC__
+  yes;
+#endif
+EOF
+if { ac_try='${CC-cc} -c qpponly conftest.c'; { (eval echo configure:767: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+  ac_cv_prog_gcc=yes
+else
+  ac_cv_prog_gcc=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gcc" 1>&6
+
+if test $ac_cv_prog_gcc = yes; then
+  GCC=yes
+else
+  GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:786: checking whether ${CC-cc} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  echo 'void f(){}' > conftest.c
+if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
+  ac_cv_prog_cc_g=yes
+else
+  ac_cv_prog_cc_g=no
+fi
+del -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS="$ac_save_CFLAGS"
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
+    CFLAGS="-g -O2"
+  else
+    CFLAGS="-g"
+  fi
+else
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
+fi
+
+for ac_prog in $CCC c++ g++ gcc CC cxx cc++ cl
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:822: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CXX"; then
+  ac_cv_prog_CXX="$CXX" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      ac_cv_prog_CXX="$ac_prog"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CXX="$ac_cv_prog_CXX"
+if test -n "$CXX"; then
+  echo "$ac_t""$CXX" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$CXX" && break
+done
+test -n "$CXX" || CXX="gcc"
+
+
+echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
+echo "configure:854: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
+
+ac_ext=C
+# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cxx_cross
+
+cat > conftest.$ac_ext << EOF
+
+#line 865 "configure"
+#include "confdefs.h"
+
+int main(){return(0);}
+EOF
+if { (eval echo configure:870: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  ac_cv_prog_cxx_works=yes
+  # If we can't run a trivial program, we are probably using a cross compiler.
+  if (./conftest; exit) 2>/dev/null; then
+    ac_cv_prog_cxx_cross=no
+  else
+    ac_cv_prog_cxx_cross=yes
+  fi
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  ac_cv_prog_cxx_works=no
+fi
+del -f conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo "$ac_t""$ac_cv_prog_cxx_works" 1>&6
+if test $ac_cv_prog_cxx_works = no; then
+  { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; }
+fi
+echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
+echo "configure:896: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
+cross_compiling=$ac_cv_prog_cxx_cross
+
+echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
+echo "configure:901: checking whether we are using GNU C++" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.C <<EOF
+#ifdef __GNUC__
+  yes;
+#endif
+EOF
+if { ac_try='${CXX-g++} -c qpponly conftest.C'; { (eval echo configure:910: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+  ac_cv_prog_gxx=yes
+else
+  ac_cv_prog_gxx=no
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_gxx" 1>&6
+
+if test $ac_cv_prog_gxx = yes; then
+  GXX=yes
+else
+  GXX=
+fi
+
+ac_test_CXXFLAGS="${CXXFLAGS+set}"
+ac_save_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS=
+echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
+echo "configure:929: checking whether ${CXX-g++} accepts -g" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  echo 'void f(){}' > conftest.cc
+if test -z "`${CXX-g++} -g -c conftest.cc 2>&1`"; then
+  ac_cv_prog_cxx_g=yes
+else
+  ac_cv_prog_cxx_g=no
+fi
+del -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6
+if test "$ac_test_CXXFLAGS" = set; then
+  CXXFLAGS="$ac_save_CXXFLAGS"
+elif test $ac_cv_prog_cxx_g = yes; then
+  if test "$GXX" = yes; then
+    CXXFLAGS="-g -O2"
+  else
+    CXXFLAGS="-g"
+  fi
+else
+  if test "$GXX" = yes; then
+    CXXFLAGS="-O2"
+  else
+    CXXFLAGS=
+  fi
+fi
+
+for ac_declaration in \
+   ''\
+   '#include <stdlib.h>' \
+   'extern "C" void std::exit (int) throw (); using std::exit;' \
+   'extern "C" void std::exit (int); using std::exit;' \
+   'extern "C" void exit (int) throw ();' \
+   'extern "C" void exit (int);' \
+   'void exit (int);'
+do
+  cat > conftest.$ac_ext <<EOF
+#line 970 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+$ac_declaration
+int main() {
+exit (42);
+; return 0; }
+EOF
+if { (eval echo configure:978: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  continue
+fi
+rm -f conftest*
+  cat > conftest.$ac_ext <<EOF
+#line 988 "configure"
+#include "confdefs.h"
+$ac_declaration
+int main() {
+exit (42);
+; return 0; }
+EOF
+if { (eval echo configure:995: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+if test -n "$ac_declaration"; then
+  echo '#ifdef __cplusplus' >>confdefs.h
+  echo $ac_declaration      >>confdefs.h
+  echo '#endif'             >>confdefs.h
+fi
+
+
+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
+  fi
+done
+if test -z "$ac_aux_dir"; then
+  { echo "configure: error: can not find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." 1>&2; exit 1; }
+fi
+ac_config_guess=$ac_aux_dir/config.guess
+ac_config_sub=$ac_aux_dir/config.sub
+ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
+
+# 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
+# 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"
+# ./install, which can be erroneously created by make from ./install.sh.
+echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
+echo "configure:1042: checking for a BSD compatible install" >&5
+if test -z "$INSTALL"; then
+if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+    IFS="${IFS= 	}"; ac_save_IFS="$IFS"; IFS=":"
+  for ac_dir in $PATH; do
+    # Account for people who put trailing slashes in PATH elements.
+    case "$ac_dir/" in
+    /|./|.//|/etc/*|/usr/sbin/*|/usr/etc/*|/sbin/*|/usr/afsws/bin/*|/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
+        if test -f $ac_dir/$ac_prog; then
+	  if test $ac_prog = install &&
+            grep dspmsg $ac_dir/$ac_prog >/dev/null 2>&1; then
+	    # AIX install.  It has an incompatible calling convention.
+	    :
+	  else
+	    ac_cv_path_install="$ac_dir/$ac_prog -c"
+	    break 2
+	  fi
+	fi
+      done
+      ;;
+    esac
+  done
+  IFS="$ac_save_IFS"
+
+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.  We don't cache a
+    # path for INSTALL within a source directory, because that will
+    # break other packages using the cache if that directory is
+    # removed, or if the path is relative.
+    INSTALL="$ac_install_sh"
+  fi
+fi
+echo "$ac_t""$INSTALL" 1>&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_PROGRAM}'
+
+test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
+
+
+# make sure install is relative to srcdir - if a script
+if test "$srcdir" = "."; then
+  # If srcdir isn't just ., then (srcdir) is already prepended.
+  if test "${ac_install_sh}" = "${INSTALL}"; then
+   INSTALL="\\\$(top_srcdir)/${ac_install_sh}"
+  fi
+fi
+
+#AC_CHECK_PROG(AUTOCONF, autoconf, autoconf, true)
+# Extract the first word of "strip", so it can be a program name with args.
+set dummy strip; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1107: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_STRIP'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$STRIP"; then
+  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      ac_cv_prog_STRIP="strip"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_STRIP" && ac_cv_prog_STRIP="true"
+fi
+fi
+STRIP="$ac_cv_prog_STRIP"
+if test -n "$STRIP"; then
+  echo "$ac_t""$STRIP" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+for ac_prog in gmake gnumake
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1140: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_U_MAKE'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$U_MAKE" in
+  /*)
+  ac_cv_path_U_MAKE="$U_MAKE" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_U_MAKE="$U_MAKE" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      ac_cv_path_U_MAKE="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
+fi
+U_MAKE="$ac_cv_path_U_MAKE"
+if test -n "$U_MAKE"; then
+  echo "$ac_t""$U_MAKE" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$U_MAKE" && break
+done
+test -n "$U_MAKE" || U_MAKE="make"
+
+
+
+# Extract the first word of "doxygen", so it can be a program name with args.
+set dummy doxygen; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1181: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_DOXYGEN'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$DOXYGEN" in
+  /*)
+  ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_DOXYGEN="$DOXYGEN" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH:/usr/local/bin:/usr/bin"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      ac_cv_path_DOXYGEN="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
+fi
+DOXYGEN="$ac_cv_path_DOXYGEN"
+if test -n "$DOXYGEN"; then
+  echo "$ac_t""$DOXYGEN" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+
+# Make sure we can run config.sub.
+if ${CONFIG_SHELL-/usr/bin/qsh} $ac_config_sub sun4 >/dev/null 2>&1; then :
+else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
+fi
+
+echo $ac_n "checking host system type""... $ac_c" 1>&6
+echo "configure:1221: checking host system type" >&5
+
+host_alias=$host
+case "$host_alias" in
+NONE)
+  case $nonopt in
+  NONE)
+    if host_alias=`${CONFIG_SHELL-/usr/bin/qsh} $ac_config_guess`; then :
+    else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
+    fi ;;
+  *) host_alias=$nonopt ;;
+  esac ;;
+esac
+
+host=`${CONFIG_SHELL-/usr/bin/qsh} $ac_config_sub $host_alias`
+host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
+host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
+host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
+echo "$ac_t""$host" 1>&6
+
+echo $ac_n "checking for Cygwin environment""... $ac_c" 1>&6
+echo "configure:1242: checking for Cygwin environment" >&5
+if eval "test \"`echo '$''{'ac_cv_cygwin'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1247 "configure"
+#include "confdefs.h"
+
+int main() {
+
+#ifndef __CYGWIN__
+#define __CYGWIN__ __CYGWIN32__
+#endif
+return __CYGWIN__;
+; return 0; }
+EOF
+if { (eval echo configure:1258: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_cygwin=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_cygwin=no
+fi
+rm -f conftest*
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_cygwin" 1>&6
+CYGWIN=
+test "$ac_cv_cygwin" = yes && CYGWIN=yes
+echo $ac_n "checking for mingw32 environment""... $ac_c" 1>&6
+echo "configure:1275: checking for mingw32 environment" >&5
+if eval "test \"`echo '$''{'ac_cv_mingw32'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1280 "configure"
+#include "confdefs.h"
+
+int main() {
+return __MINGW32__;
+; return 0; }
+EOF
+if { (eval echo configure:1287: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_mingw32=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_mingw32=no
+fi
+rm -f conftest*
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_mingw32" 1>&6
+MINGW32=
+test "$ac_cv_mingw32" = yes && MINGW32=yes
+
+
+echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
+echo "configure:1306: checking for executable suffix" >&5
+if eval "test \"`echo '$''{'ac_cv_exeext'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$CYGWIN" = yes || test "$MINGW32" = yes; then
+  ac_cv_exeext=.exe
+else
+  rm -f conftest*
+  echo 'int main () { return 0; }' > conftest.$ac_ext
+  ac_cv_exeext=
+  if { (eval echo configure:1316: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; }; then
+    for file in conftest.*; do
+      case $file in
+      *.c | *.o | *.obj) ;;
+      *) ac_cv_exeext=`echo $file | sed -e s/conftest//` ;;
+      esac
+    done
+  else
+    { echo "configure: error: installation or configuration problem: compiler cannot create executables." 1>&2; exit 1; }
+  fi
+  rm -f conftest*
+  test x"${ac_cv_exeext}" = x && ac_cv_exeext=no
+fi
+fi
+
+EXEEXT=""
+test x"${ac_cv_exeext}" != xno && EXEEXT=${ac_cv_exeext}
+echo "$ac_t""${ac_cv_exeext}" 1>&6
+ac_exeext=$EXEEXT
+
+
+
+    echo $ac_n "checking whether strict compiling is on""... $ac_c" 1>&6
+echo "configure:1339: checking whether strict compiling is on" >&5
+    # Check whether --enable-strict or --disable-strict was given.
+if test "${enable_strict+set}" = set; then
+  enableval="$enable_strict"
+  
+        if test "$enableval" = no
+        then
+            ac_use_strict_options=no
+        else
+            ac_use_strict_options=yes
+        fi
+      
+else
+  ac_use_strict_options=no
+fi
+
+    echo "$ac_t""$ac_use_strict_options" 1>&6
+
+    if test "$ac_use_strict_options" = yes
+    then
+        if test "$GCC" = yes
+        then
+            CFLAGS="$CFLAGS -Wall -ansi -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Winline -Wno-long-long -fno-strict-aliasing"
+            case "${host}" in
+            *-*-solaris*)
+                CFLAGS="$CFLAGS -D__STDC__=0";;
+            esac
+        else
+            case "${host}" in
+            *-*-cygwin)
+                if test "`$CC /help 2>&1 | head -c9`" = "Microsoft"
+                then
+                    CFLAGS="$CFLAGS /W4"
+                fi
+            esac
+        fi
+        if test "$GXX" = yes
+        then
+            CXXFLAGS="$CXXFLAGS -W -Wall -ansi -pedantic -Wpointer-arith -Wwrite-strings -Winline -Wno-long-long"
+            case "${host}" in
+            *-*-solaris*)
+                CXXFLAGS="$CXXFLAGS -D__STDC__=0";;
+            esac
+        else
+            case "${host}" in
+            *-*-cygwin)
+                if test "`$CXX /help 2>&1 | head -c9`" = "Microsoft"
+                then
+                    CXXFLAGS="$CXXFLAGS /W4"
+                fi
+            esac
+        fi
+    fi
+
+
+
+    # Check whether --enable-64bit-libs or --disable-64bit-libs was given.
+if test "${enable_64bit_libs+set}" = set; then
+  enableval="$enable_64bit_libs"
+  ENABLE_64BIT_LIBS=${enableval}
+else
+  ENABLE_64BIT_LIBS=yes
+    
+fi
+
+        echo $ac_n "checking for 64-bit executable support""... $ac_c" 1>&6
+echo "configure:1405: checking for 64-bit executable support" >&5
+    if test "$ENABLE_64BIT_LIBS" != no; then
+        case "${host}" in
+        *-*-solaris*)
+            SPARCV9=`isainfo -n 2>&1 | grep sparcv9`
+            if test "$GCC" = yes; then
+                # We could add a check for -m64 depending on the gcc version.
+                ENABLE_64BIT_LIBS=no
+            else
+                SOL64=`$CXX -xarch=v9 2>&1 && $CC -xarch=v9 2>&1 | grep -v usage:`
+                if test -z "$SOL64" && test -n "$SPARCV9"; then
+                    CFLAGS="${CFLAGS} -xtarget=ultra -xarch=v9"
+                    CXXFLAGS="${CXXFLAGS} -xtarget=ultra -xarch=v9"
+                    LDFLAGS="${LDFLAGS} -xtarget=ultra -xarch=v9"
+                    ENABLE_64BIT_LIBS=yes
+                else
+                    ENABLE_64BIT_LIBS=no
+                fi
+            fi
+            ;;
+        ia64-*-linux*)
+            if test "$GCC" = yes; then
+                # gcc compiler support
+                if test -n "`$CXX -dumpspecs 2>&1 && $CC -dumpspecs 2>&1 | grep -v __LP64__`"; then
+                    ENABLE_64BIT_LIBS=yes
+                else
+                    ENABLE_64BIT_LIBS=no
+                fi
+            else
+                # check for ecc/ecpc compiler support
+                if test -n "`$CXX --help 2>&1 && $CC --help 2>&1 | grep -v Intel`"; then
+                    if test -n "`$CXX --help 2>&1 && $CC --help 2>&1 | grep -v Itanium`"; then
+                        ENABLE_64BIT_LIBS=yes
+                    else
+                        ENABLE_64BIT_LIBS=no
+                    fi
+                else
+                    # unknown
+                    ENABLE_64BIT_LIBS=no
+                fi
+            fi
+            ;;
+        x86_64-*-linux*)
+            if test "$GCC" = yes; then
+                if test -n "`$CXX -dumpspecs 2>&1 && $CC -dumpspecs 2>&1 | grep -v __LP64__`"; then
+                    ENABLE_64BIT_LIBS=yes
+                else
+                    ENABLE_64BIT_LIBS=no
+                fi
+            else
+                # unknown
+                ENABLE_64BIT_LIBS=no
+            fi
+            ;;
+        *-*-aix*|powerpc64-*-linux*)
+            if test "$ac_cv_prog_gcc" = no; then
+                # Note: Have not tested 64-bitness with gcc.
+                # Maybe the flag "-maix64" could be used with gcc?
+                OLD_CFLAGS="${CFLAGS}"
+                OLD_CXXFLAGS="${CXXFLAGS}"
+                OLD_LDFLAGS="${LDFLAGS}"
+                CFLAGS="${CFLAGS} -q64"
+                CXXFLAGS="${CXXFLAGS} -q64"
+                LDFLAGS="${LDFLAGS} -q64"
+                if test "$cross_compiling" = yes; then
+  ENABLE_64BIT_LIBS=no
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1473 "configure"
+#include "confdefs.h"
+int main(void) {return 0;}
+EOF
+if { (eval echo configure:1477: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ENABLE_64BIT_LIBS=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ENABLE_64BIT_LIBS=no
+fi
+rm -fr conftest*
+fi
+
+                if test "$ENABLE_64BIT_LIBS" = no; then
+                    CFLAGS="${OLD_CFLAGS}"
+                    CXXFLAGS="${OLD_CXXFLAGS}"
+                    LDFLAGS="${OLD_LDFLAGS}"
+                else
+                    case "${host}" in
+                    *-*-aix*)
+                        ARFLAGS="${ARFLAGS} -X64"
+                    esac
+                fi
+            fi
+            ;;
+        *-*-hpux*)
+                        
+            OLD_CFLAGS="${CFLAGS}"
+            OLD_CXXFLAGS="${CXXFLAGS}"
+            CFLAGS="${CFLAGS} +DD64"
+            CXXFLAGS="${CXXFLAGS} +DD64"
+            if test "$cross_compiling" = yes; then
+  ENABLE_64BIT_LIBS=no
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1511 "configure"
+#include "confdefs.h"
+int main(void) {return 0;}
+EOF
+if { (eval echo configure:1515: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ENABLE_64BIT_LIBS=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ENABLE_64BIT_LIBS=no
+fi
+rm -fr conftest*
+fi
+
+            if test "$ENABLE_64BIT_LIBS" = no; then
+                CFLAGS="${OLD_CFLAGS}"
+                CXXFLAGS="${OLD_CXXFLAGS}"
+                CFLAGS="${CFLAGS} +DA2.0W"
+                CXXFLAGS="${CXXFLAGS} +DA2.0W"
+                if test "$cross_compiling" = yes; then
+  ENABLE_64BIT_LIBS=no
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1536 "configure"
+#include "confdefs.h"
+int main(void) {return 0;}
+EOF
+if { (eval echo configure:1540: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ENABLE_64BIT_LIBS=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ENABLE_64BIT_LIBS=no
+fi
+rm -fr conftest*
+fi
+
+                if test "$ENABLE_64BIT_LIBS" = no; then
+                    CFLAGS="${OLD_CFLAGS}"
+                    CXXFLAGS="${OLD_CXXFLAGS}"
+                fi
+            fi
+            ;;
+        *)
+            ENABLE_64BIT_LIBS=no
+            ;;
+        esac
+    fi
+        echo "$ac_t""$ENABLE_64BIT_LIBS" 1>&6
+
+
+
+
+
+	echo $ac_n "checking which Makefile fragment to use""... $ac_c" 1>&6
+echo "configure:1570: checking which Makefile fragment to use" >&5
+if eval "test \"`echo '$''{'icu_cv_host_frag'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  
+case "${host}" in
+*-*-solaris*)
+	if test "$GCC" = yes; then	
+		icu_cv_host_frag=mh-solaris-gcc 
+	else
+		icu_cv_host_frag=mh-solaris
+	fi ;;
+alpha*-*-linux-gnu)
+	if test "$GCC" = yes; then
+		icu_cv_host_frag=mh-alpha-linux-gcc
+	else  
+		icu_cv_host_frag=mh-alpha-linux-cc
+	fi ;;
+powerpc*-*-linux*)
+	if test "$GCC" = yes; then
+	  	icu_cv_host_frag=mh-linux
+	else
+	  	icu_cv_host_frag=mh-linux-va
+	fi ;;
+*-*-linux*) icu_cv_host_frag=mh-linux ;;
+*-*-cygwin)
+	if test "$GCC" = yes; then
+	  	icu_cv_host_frag=mh-cygwin
+	else
+	  	icu_cv_host_frag=mh-cygwin-msvc
+	fi ;;
+*-*-mingw32)
+	if test "$GCC" = yes; then
+	  	icu_cv_host_frag=mh-mingw
+	else
+	  	icu_cv_host_frag=mh-cygwin-msvc
+	fi ;;
+*-*-*bsd*) 	icu_cv_host_frag=mh-bsd-gcc ;;
+*-*-aix*)
+	if test "$GCC" = yes; then
+		icu_cv_host_frag=mh-aix-gcc
+	else
+		if test -n "`$CXX --help 2>&1 | grep 'IBM C and C++ Compilers$'`"; then
+			icu_cv_host_frag=mh-aix
+		else
+			icu_cv_host_frag=mh-aix-va
+		fi
+	fi ;;
+*-*-hpux*)
+	if test "$GCC" = yes; then
+		icu_cv_host_frag=mh-hpux-gcc
+	else
+		case "$CXX" in
+		*aCC)    icu_cv_host_frag=mh-hpux-acc ;;
+		*CC)     icu_cv_host_frag=mh-hpux-cc ;;
+		esac
+	fi ;;
+*-*ibm-openedition*|*-*-os390*)	icu_cv_host_frag=mh-os390 ;;
+*-*-os400*)	icu_cv_host_frag=mh-os400 ;;
+*-apple-rhapsody*)	icu_cv_host_frag=mh-darwin ;;
+*-apple-darwin*)	icu_cv_host_frag=mh-darwin ;;
+*-*-beos)	icu_cv_host_frag=mh-beos ;;
+*-*-irix*)	icu_cv_host_frag=mh-irix ;;
+*-dec-osf*) icu_cv_host_frag=mh-alpha-osf ;;
+*-*-nto*)	icu_cv_host_frag=mh-qnx ;;
+*-ncr-*)	icu_cv_host_frag=mh-mpras ;;
+*-sequent-*) 	icu_cv_host_frag=mh-ptx ;;
+*) 		icu_cv_host_frag=mh-unknown ;;
+esac
+		
+	
+fi
+
+echo "$ac_t""$icu_cv_host_frag" 1>&6
+
+
+case "${host}" in
+	*-*-hpux*) 	echo $ac_n "checking for floor in -lm""... $ac_c" 1>&6
+echo "configure:1648: checking for floor in -lm" >&5
+ac_lib_var=`echo m'_'floor | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lm  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 1656 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char floor();
+
+int main() {
+floor()
+; return 0; }
+EOF
+if { (eval echo configure:1667: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+del -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  LIB_M="-lm"
+else
+  echo "$ac_t""no" 1>&6
+fi
+ ;;
+	
+	*) 		echo $ac_n "checking for floor in -lm""... $ac_c" 1>&6
+echo "configure:1689: checking for floor in -lm" >&5
+ac_lib_var=`echo m'_'floor | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lm  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 1697 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char floor();
+
+int main() {
+floor()
+; return 0; }
+EOF
+if { (eval echo configure:1708: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+del -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo m | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="-lm $LIBS"
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+ 
+			LIB_M="" ;;
+esac
+
+
+echo $ac_n "checking whether to build shared libraries""... $ac_c" 1>&6
+echo "configure:1740: checking whether to build shared libraries" >&5
+enabled=no
+# Check whether --enable-shared or --disable-shared was given.
+if test "${enable_shared+set}" = set; then
+  enableval="$enable_shared"
+   case "${enableval}" in
+	     yes|"") enabled=yes; ENABLE_SHARED=YES ;;
+	     no);;
+	     *) ;;
+    esac
+else
+  enabled=yes; ENABLE_SHARED=YES
+
+fi
+
+echo "$ac_t""$enabled" 1>&6
+
+
+echo $ac_n "checking whether to build static libraries""... $ac_c" 1>&6
+echo "configure:1759: checking whether to build static libraries" >&5
+enabled=no
+# Check whether --enable-static or --disable-static was given.
+if test "${enable_static+set}" = set; then
+  enableval="$enable_static"
+   case "${enableval}" in
+	     yes|"") enabled=yes; ENABLE_STATIC=YES ;;
+	     no) ;;
+	     *) ;;
+    esac
+fi
+
+echo "$ac_t""$enabled" 1>&6
+
+
+echo $ac_n "checking whether to build debug libraries""... $ac_c" 1>&6
+echo "configure:1775: checking whether to build debug libraries" >&5
+enabled=no
+ENABLE_DEBUG=0
+# Check whether --enable-debug or --disable-debug was given.
+if test "${enable_debug+set}" = set; then
+  enableval="$enable_debug"
+   case "${enableval}" in
+         yes|"") enabled=yes; ENABLE_DEBUG=1 ;;
+         *) ;;
+    esac
+fi
+
+echo "$ac_t""$enabled" 1>&6
+
+
+echo $ac_n "checking whether to build release libraries""... $ac_c" 1>&6
+echo "configure:1791: checking whether to build release libraries" >&5
+enabled=yes
+ENABLE_RELEASE=1
+# Check whether --enable-release or --disable-release was given.
+if test "${enable_release+set}" = set; then
+  enableval="$enable_release"
+   case "${enableval}" in
+         no) enabled=no; ENABLE_RELEASE=0 ;;
+         *) ;;
+    esac
+fi
+
+echo "$ac_t""$enabled" 1>&6
+
+
+# Extract the first word of "ranlib", so it can be a program name with args.
+set dummy ranlib; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1809: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$RANLIB"; then
+  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
+else
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -x $ac_dir/$ac_word; then
+      ac_cv_prog_RANLIB="ranlib"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_RANLIB" && ac_cv_prog_RANLIB=":"
+fi
+fi
+RANLIB="$ac_cv_prog_RANLIB"
+if test -n "$RANLIB"; then
+  echo "$ac_t""$RANLIB" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+# Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1839: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_AR'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$AR" in
+  /*)
+  ac_cv_path_AR="$AR" # Let the user override the test with a path.
+  ;;
+  ?:/*)			 
+  ac_cv_path_AR="$AR" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS= 	}"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH:/bin:/usr/bin:/usr/ccs/bin"
+  for ac_dir in $ac_dummy; do 
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_AR="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_AR" && ac_cv_path_AR="echo archiver ar not found re-run configure ; false"
+  ;;
+esac
+fi
+AR="$ac_cv_path_AR"
+if test -n "$AR"; then
+  echo "$ac_t""$AR" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+echo $ac_n "checking whether to enable renaming of symbols""... $ac_c" 1>&6
+echo "configure:1874: checking whether to enable renaming of symbols" >&5
+enabled=yes
+U_DISABLE_RENAMING=0
+# Check whether --enable-renaming or --disable-renaming was given.
+if test "${enable_renaming+set}" = set; then
+  enableval="$enable_renaming"
+   case "${enableval}" in
+	     yes|"") enabled=yes ;;
+	     no) enabled=no; U_DISABLE_RENAMING=1 ;;
+	     *) ;;
+    esac
+fi
+
+echo "$ac_t""$enabled" 1>&6
+
+
+echo $ac_n "checking whether to enable function and data tracing""... $ac_c" 1>&6
+echo "configure:1891: checking whether to enable function and data tracing" >&5
+enabled=yes
+U_ENABLE_TRACING=1
+# Check whether --enable-tracing or --disable-tracing was given.
+if test "${enable_tracing+set}" = set; then
+  enableval="$enable_tracing"
+   case "${enableval}" in
+	     yes|"") enabled=yes ;;
+	     no) enabled=no; U_ENABLE_TRACING=0 ;;
+	     *) ;;
+    esac
+fi
+
+echo "$ac_t""$enabled" 1>&6
+
+
+# Check whether --enable-rpath or --disable-rpath was given.
+if test "${enable_rpath+set}" = set; then
+  enableval="$enable_rpath"
+   case "${enableval}" in
+	     yes|"") ENABLE_RPATH=YES ;;
+	     no) ;;
+	     *) ;;
+    esac
+else
+  ENABLE_RPATH=NO
+
+fi
+
+
+
+
+echo $ac_n "checking for definition of U_INLINE for C""... $ac_c" 1>&6
+echo "configure:1924: checking for definition of U_INLINE for C" >&5
+if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+  cat > conftest.$ac_ext <<EOF
+#line 1931 "configure"
+#include "confdefs.h"
+
+int main() {
+return 0;} $ac_kw int foo() {
+; return 0; }
+EOF
+if { (eval echo configure:1938: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  del -f conftest*
+  ac_cv_c_inline=$ac_kw; break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+  done
+  
+fi
+
+echo "$ac_t""$ac_cv_c_inline" 1>&6
+case "$ac_cv_c_inline" in
+      yes)       U_INLINE= "inline" ;;
+	  no )       U_INLINE= ;;
+	    *)       U_INLINE=$ac_cv_c_inline ;;
+esac
+
+
+threads=true
+
+# Check whether --enable-threads or --disable-threads was given.
+if test "${enable_threads+set}" = set; then
+  enableval="$enable_threads"
+  case "${enableval}" in
+		yes) threads=true ;;
+		no)  threads=false ;;
+		*) { echo "configure: error: bad value ${enableval} for --enable-threads" 1>&2; exit 1; } ;;
+		esac
+else
+  threads=true
+fi
+
+
+if test "$threads" = true; then
+  THREADS_TRUE=
+else
+  THREADS_TRUE='#'
+fi
+
+ICU_USE_THREADS=0
+
+if test $threads = true; then
+           
+  echo $ac_n "checking for pthread_attr_init in -lpthread""... $ac_c" 1>&6
+echo "configure:1984: checking for pthread_attr_init in -lpthread" >&5
+ac_lib_var=`echo pthread'_'pthread_attr_init | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lpthread  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 1992 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char pthread_attr_init();
+
+int main() {
+pthread_attr_init()
+; return 0; }
+EOF
+if { (eval echo configure:2003: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+del -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo pthread | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="-lpthread $LIBS"
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+  if test $ac_cv_lib_pthread_pthread_attr_init = yes; then
+    ICU_USE_THREADS=1
+  else
+                    
+    
+echo $ac_n "checking for library containing pthread_mutex_destroy""... $ac_c" 1>&6
+echo "configure:2036: checking for library containing pthread_mutex_destroy" >&5
+if eval "test \"`echo '$''{'ac_cv_search_pthread_mutex_destroy'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_func_search_save_LIBS="$LIBS"
+ac_cv_search_pthread_mutex_destroy="no"
+for i in pthread pthreads c_r ; do
+LIBS="-l$i  $ac_func_search_save_LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2045 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char pthread_mutex_destroy();
+
+int main() {
+pthread_mutex_destroy()
+; return 0; }
+EOF
+if { (eval echo configure:2056: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_search_pthread_mutex_destroy="-l$i"
+break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+done
+if test "$ac_cv_search_pthread_mutex_destroy" = "no"; then
+cat > conftest.$ac_ext <<EOF
+#line 2068 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char pthread_mutex_destroy();
+
+int main() {
+pthread_mutex_destroy()
+; return 0; }
+EOF
+if { (eval echo configure:2079: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_search_pthread_mutex_destroy="none required"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+fi
+LIBS="$ac_func_search_save_LIBS"
+fi
+
+echo "$ac_t""$ac_cv_search_pthread_mutex_destroy" 1>&6
+if test "$ac_cv_search_pthread_mutex_destroy" != "no"; then
+  test "$ac_cv_search_pthread_mutex_destroy" = "none required" || LIBS="$ac_cv_search_pthread_mutex_destroy $LIBS"
+  
+else :
+  
+fi
+
+    if test "$ac_cv_search_pthread_mutex_destroy" != no; then
+      ICU_USE_THREADS=1
+    else
+            echo $ac_n "checking for pthread_mutex_init in -lpthread""... $ac_c" 1>&6
+echo "configure:2103: checking for pthread_mutex_init in -lpthread" >&5
+ac_lib_var=`echo pthread'_'pthread_mutex_init | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lpthread  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2111 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char pthread_mutex_init();
+
+int main() {
+pthread_mutex_init()
+; return 0; }
+EOF
+if { (eval echo configure:2122: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+del -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo pthread | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="-lpthread $LIBS"
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+      if test $ac_cv_lib_pthread_pthread_mutex_init = yes; then
+        ICU_USE_THREADS=1
+      fi
+    fi
+
+    echo $ac_n "checking for pthread_mutex_lock""... $ac_c" 1>&6
+echo "configure:2155: checking for pthread_mutex_lock" >&5
+if eval "test \"`echo '$''{'ac_cv_func_pthread_mutex_lock'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2160 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char pthread_mutex_lock(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char pthread_mutex_lock();
+
+int main() {
+
+/* 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_pthread_mutex_lock) || defined (__stub___pthread_mutex_lock)
+choke me
+#else
+pthread_mutex_lock();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2183: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_func_pthread_mutex_lock=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_func_pthread_mutex_lock=no"
+fi
+del -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'pthread_mutex_lock`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+    if test $ac_cv_func_pthread_mutex_lock = yes; then
+      ICU_USE_THREADS=1
+    fi
+  fi
+    case "${host}" in
+  *-pc-cygwin*|*-pc-mingw*)
+    if test "$ac_cv_prog_gcc" = no; then
+            ICU_USE_THREADS=1
+    fi ;;
+  *-*-hpux*)
+        case "${icu_cv_host_frag}" in
+      mh-hpux-acc)
+        OLD_CXXFLAGS="${CXXFLAGS}"
+        CXXFLAGS="${CXXFLAGS} -mt"
+        if test x"`${CXX} ${CXXFLAGS} 2>&1`" != x""; then
+           CXXFLAGS="${OLD_CXXFLAGS}"
+       fi
+      ;;
+    esac
+    ;;
+  esac
+fi
+
+
+
+
+# The AC_FUNC_MMAP macro doesn't work properly.  It seems to be too specific.
+# Do this check instead.
+HAVE_MMAP=0
+echo $ac_n "checking for mmap""... $ac_c" 1>&6
+echo "configure:2233: checking for mmap" >&5
+if eval "test \"`echo '$''{'ac_cv_func_mmap_ok'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2238 "configure"
+#include "confdefs.h"
+    
+#include <unistd.h>
+#include <sys/mman.h>
+#include <sys/stat.h>
+#include <fcntl.h>
+    
+int main() {
+    mmap((void *)0, 0, PROT_READ, 0, 0, 0);
+; return 0; }
+EOF
+if { (eval echo configure:2250: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_func_mmap_ok=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_func_mmap_ok=no
+fi
+del -f conftest* 
+fi
+
+echo "$ac_t""$ac_cv_func_mmap_ok" 1>&6
+if test $ac_cv_func_mmap_ok = yes
+then
+    HAVE_MMAP=1
+fi
+
+
+GENCCODE_ASSEMBLY=
+case "${host}" in
+i*86-*-*bsd*|i*86-*-linux*|x86_64-*-linux*|powerpc*-*-linux*)
+    if test "$GCC" = yes; then
+                GENCCODE_ASSEMBLY="-a gcc"
+    fi ;;
+esac
+
+
+
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+echo "configure:2280: checking how to run the C preprocessor" >&5
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+    # This must be in double quotes, not single quotes, because CPP may get
+  # substituted into the Makefile and "${CC-cc}" will confuse make.
+  CPP="${CC-cc} -c -qpponly"
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp.
+  cat > conftest.$ac_ext <<EOF
+#line 2295 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2301: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  CPP="${CC-cc} -c qpponly -traditional-cpp"
+  cat > conftest.$ac_ext <<EOF
+#line 2312 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2318: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  CPP="${CC-cc} -nologo -c -qpponly"
+  cat > conftest.$ac_ext <<EOF
+#line 2329 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2335: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  CPP=/usr/bin/icc
+fi
+del -f conftest*
+fi
+del -f conftest*
+fi
+del -f conftest*
+  ac_cv_prog_CPP="$CPP"
+fi
+  CPP="$ac_cv_prog_CPP"
+else
+  ac_cv_prog_CPP="$CPP"
+fi
+echo "$ac_t""$CPP" 1>&6
+
+for ac_hdr in inttypes.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:2363: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2368 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2373: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  del -f conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+del -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+ 
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+if test $ac_cv_header_inttypes_h = no; then
+ U_HAVE_INTTYPES_H=0
+else
+ U_HAVE_INTTYPES_H=1
+fi
+if test "$CC" = ccc; then
+ echo "$ac_t"""C compiler set to CCC ${CC}" " 1>&6
+ case "${host}" in
+        alpha*-*-*) U_HAVE_INTTYPES_H=0;
+ esac
+fi
+
+
+
+# Check whether --with-iostream or --without-iostream was given.
+if test "${with_iostream+set}" = set; then
+  withval="$with_iostream"
+  case "${withval}" in
+		none) streams=none ;;
+		old) streams=198506 ;;
+		std) streams=199711 ;;
+		auto) streams= ;;
+		*) { echo "configure: error: bad value ${withval} for --with-iostream" 1>&2; exit 1; } ;;
+		esac
+else
+  streams=
+fi
+
+
+U_IOSTREAM_SOURCE=0
+if test x$streams != xnone
+then
+    
+    ac_ext=C
+# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cxx_cross
+
+    OLD_CXXFLAGS="${CXXFLAGS}"
+    case "${icu_cv_host_frag}" in
+        mh-hpux-acc)
+            CXXFLAGS="${CXXFLAGS} -AA"
+        ;;
+    esac
+    echo $ac_n "checking iostream usability""... $ac_c" 1>&6
+echo "configure:2446: checking iostream usability" >&5
+    cat > conftest.$ac_ext <<EOF
+#line 2448 "configure"
+#include "confdefs.h"
+#include <iostream>
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:2455: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_header_iostream=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_header_iostream=no
+fi
+rm -f conftest*
+    if test $icu_cv_host_frag = mh-cygwin-msvc
+    then
+                                ac_cv_header_iostream=yes
+    fi
+    echo "$ac_t""$ac_cv_header_iostream" 1>&6
+    if test $ac_cv_header_iostream = yes
+    then
+        U_IOSTREAM_SOURCE=199711
+    else
+        CXXFLAGS="${OLD_CXXFLAGS}"
+        echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
+echo "configure:2476: checking how to run the C++ preprocessor" >&5
+if test -z "$CXXCPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_ext=C
+# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cxx_cross
+  CXXCPP="${CXX-g++} -c -qpponly"
+  cat > conftest.$ac_ext <<EOF
+#line 2489 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2494: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  CXXCPP=/usr/bin/icc
+fi
+del -f conftest*
+  ac_cv_prog_CXXCPP="$CXXCPP"
+ac_ext=C
+# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cxx_cross
+fi
+fi
+CXXCPP="$ac_cv_prog_CXXCPP"
+echo "$ac_t""$CXXCPP" 1>&6
+
+ac_safe=`echo "iostream.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for iostream.h""... $ac_c" 1>&6
+echo "configure:2520: checking for iostream.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2525 "configure"
+#include "confdefs.h"
+#include <iostream.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2530: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  del -f conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+del -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+        if test $ac_cv_header_iostream_h = yes; then
+            echo $ac_n "checking whether ostream is really defined""... $ac_c" 1>&6
+echo "configure:2553: checking whether ostream is really defined" >&5
+            if eval "test \"`echo '$''{'ac_cv_iostream_ok'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2558 "configure"
+#include "confdefs.h"
+#include <iostream.h>
+int main() {
+ostream &testout = cout; testout << "test" << endl;
+; return 0; }
+EOF
+if { (eval echo configure:2565: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_iostream_ok=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_iostream_ok=no
+fi
+del -f conftest*
+fi
+
+            echo "$ac_t""$ac_cv_iostream_ok" 1>&6
+            if test $ac_cv_iostream_ok = yes
+            then
+                U_IOSTREAM_SOURCE=198506
+            fi
+        fi
+    fi
+    if test x$streams != x
+    then
+        if test $U_IOSTREAM_SOURCE -ge $streams
+        then
+            U_IOSTREAM_SOURCE=$streams
+            case "${icu_cv_host_frag}" in
+                mh-hpux-acc)
+                    if test $U_IOSTREAM_SOURCE -lt 199711; then
+                        CXXFLAGS=${OLD_CXXFLAGS}
+                    fi
+                ;;
+            esac
+        else
+            { echo "configure: error: ${withval} iostream is not available" 1>&2; exit 1; }
+        fi
+    fi
+fi
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+
+echo $ac_n "checking whether byte ordering is bigendian""... $ac_c" 1>&6
+echo "configure:2611: checking whether byte ordering is bigendian" >&5
+if eval "test \"`echo '$''{'ac_cv_c_bigendian'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_cv_c_bigendian=unknown
+# See if sys/param.h defines the BYTE_ORDER macro.
+cat > conftest.$ac_ext <<EOF
+#line 2618 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <sys/param.h>
+int main() {
+
+#if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
+ bogus endian macros
+#endif
+; return 0; }
+EOF
+if { (eval echo configure:2629: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  del -f conftest*
+  # It does; now see whether it defined to BIG_ENDIAN or not.
+cat > conftest.$ac_ext <<EOF
+#line 2633 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#include <sys/param.h>
+int main() {
+
+#if BYTE_ORDER != BIG_ENDIAN
+ not big endian
+#endif
+; return 0; }
+EOF
+if { (eval echo configure:2644: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  del -f conftest*
+  ac_cv_c_bigendian=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_c_bigendian=no
+fi
+del -f conftest*
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+if test $ac_cv_c_bigendian = unknown; then
+if test "$cross_compiling" = yes; then
+    { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; }
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2664 "configure"
+#include "confdefs.h"
+main () {
+  /* Are we little or big endian?  From Harbison&Steele.  */
+  union
+  {
+    long l;
+    char c[sizeof (long)];
+  } u;
+  u.l = 1;
+  exit (u.c[sizeof (long) - 1] == 1);
+}
+EOF
+if { (eval echo configure:2677: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_c_bigendian=no
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_c_bigendian=yes
+fi
+del -f conftest*
+fi
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_c_bigendian" 1>&6
+if test $ac_cv_c_bigendian = yes; then
+  cat >> confdefs.h <<\EOF
+#define WORDS_BIGENDIAN 1
+EOF
+
+fi
+
+if test $ac_cv_c_bigendian = no; then
+U_IS_BIG_ENDIAN=0
+U_ENDIAN_CHAR="l"
+else
+U_IS_BIG_ENDIAN=1
+U_ENDIAN_CHAR="b"
+fi
+
+
+U_HAVE_NL_LANGINFO_CODESET=0
+U_NL_LANGINFO_CODESET=-1
+echo $ac_n "checking for nl_langinfo""... $ac_c" 1>&6
+echo "configure:2712: checking for nl_langinfo" >&5
+if eval "test \"`echo '$''{'ac_cv_func_nl_langinfo'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2717 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char nl_langinfo(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char nl_langinfo();
+
+int main() {
+
+/* 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_nl_langinfo) || defined (__stub___nl_langinfo)
+choke me
+#else
+nl_langinfo();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2740: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_func_nl_langinfo=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_func_nl_langinfo=no"
+fi
+del -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'nl_langinfo`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  U_HAVE_NL_LANGINFO=1
+else
+  echo "$ac_t""no" 1>&6
+U_HAVE_NL_LANGINFO=0
+fi
+
+
+if test $U_HAVE_NL_LANGINFO -eq 1; then
+  echo $ac_n "checking for nl_langinfo's argument to obtain the codeset""... $ac_c" 1>&6
+echo "configure:2763: checking for nl_langinfo's argument to obtain the codeset" >&5
+if eval "test \"`echo '$''{'ac_cv_nl_langinfo_codeset'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_cv_nl_langinfo_codeset="unknown"
+  for a in CODESET _NL_CTYPE_CODESET_NAME; do
+  cat > conftest.$ac_ext <<EOF
+#line 2770 "configure"
+#include "confdefs.h"
+#include <langinfo.h>
+int main() {
+nl_langinfo($a);
+; return 0; }
+EOF
+if { (eval echo configure:2777: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_nl_langinfo_codeset="$a"; break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+  done
+fi
+
+echo "$ac_t""$ac_cv_nl_langinfo_codeset" 1>&6
+  if test x$ac_cv_nl_langinfo_codeset != xunknown
+  then
+      U_HAVE_NL_LANGINFO_CODESET=1
+      U_NL_LANGINFO_CODESET=$ac_cv_nl_langinfo_codeset
+  fi
+fi
+
+
+
+ac_ext=C
+# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cxx_cross
+
+echo $ac_n "checking for namespace support""... $ac_c" 1>&6
+echo "configure:2806: checking for namespace support" >&5
+if eval "test \"`echo '$''{'ac_cv_namespace_ok'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2811 "configure"
+#include "confdefs.h"
+    namespace x_version {void f(){}};
+    namespace x = x_version;
+    using namespace x_version;
+    
+int main() {
+    f();
+; return 0; }
+EOF
+if { (eval echo configure:2821: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_namespace_ok=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_namespace_ok=no
+fi
+del -f conftest* 
+fi
+
+echo "$ac_t""$ac_cv_namespace_ok" 1>&6
+U_HAVE_NAMESPACE=1
+if test $ac_cv_namespace_ok = no
+then
+    U_HAVE_NAMESPACE=0
+fi
+
+
+echo $ac_n "checking for properly overriding new and delete""... $ac_c" 1>&6
+echo "configure:2842: checking for properly overriding new and delete" >&5
+U_OVERRIDE_CXX_ALLOCATION=0
+U_HAVE_PLACEMENT_NEW=0
+if eval "test \"`echo '$''{'ac_cv_override_cxx_allocation_ok'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2849 "configure"
+#include "confdefs.h"
+    #include <stdlib.h>
+    class UMemory {
+    public:
+    void *operator new(size_t size) {return malloc(size);}
+    void *operator new[](size_t size) {return malloc(size);}
+    void operator delete(void *p) {free(p);}
+    void operator delete[](void *p) {free(p);}
+    };
+    
+int main() {
+    
+; return 0; }
+EOF
+if { (eval echo configure:2864: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_override_cxx_allocation_ok=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_override_cxx_allocation_ok=no
+fi
+del -f conftest* 
+fi
+
+echo "$ac_t""$ac_cv_override_cxx_allocation_ok" 1>&6
+if test $ac_cv_override_cxx_allocation_ok = yes
+then
+    U_OVERRIDE_CXX_ALLOCATION=1
+    echo $ac_n "checking for placement new and delete""... $ac_c" 1>&6
+echo "configure:2881: checking for placement new and delete" >&5
+    if eval "test \"`echo '$''{'ac_cv_override_placement_new_ok'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2886 "configure"
+#include "confdefs.h"
+        #include <stdlib.h>
+        class UMemory {
+        public:
+        void *operator new(size_t size) {return malloc(size);}
+        void *operator new[](size_t size) {return malloc(size);}
+        void operator delete(void *p) {free(p);}
+        void operator delete[](void *p) {free(p);}
+        void * operator new(size_t, void *ptr) { return ptr; }
+        void operator delete(void *, void *) {}
+        };
+        
+int main() {
+        
+; return 0; }
+EOF
+if { (eval echo configure:2903: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_override_placement_new_ok=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_override_placement_new_ok=no
+fi
+del -f conftest* 
+fi
+
+    echo "$ac_t""$ac_cv_override_placement_new_ok" 1>&6
+    if test $ac_cv_override_placement_new_ok = yes
+    then
+        U_HAVE_PLACEMENT_NEW=1
+    fi
+fi
+
+
+
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
+
+echo $ac_n "checking for popen""... $ac_c" 1>&6
+echo "configure:2932: checking for popen" >&5
+if eval "test \"`echo '$''{'ac_cv_func_popen'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2937 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char popen(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char popen();
+
+int main() {
+
+/* 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_popen) || defined (__stub___popen)
+choke me
+#else
+popen();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2960: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_func_popen=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_func_popen=no"
+fi
+del -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'popen`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+if test x$ac_cv_func_popen = xyes
+then
+     U_HAVE_POPEN=1
+else
+     U_HAVE_POPEN=0
+fi
+
+
+echo $ac_n "checking for tzset""... $ac_c" 1>&6
+echo "configure:2988: checking for tzset" >&5
+if eval "test \"`echo '$''{'ac_cv_func_tzset'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2993 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char tzset(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char tzset();
+
+int main() {
+
+/* 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_tzset) || defined (__stub___tzset)
+choke me
+#else
+tzset();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3016: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_func_tzset=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_func_tzset=no"
+fi
+del -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'tzset`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+U_HAVE_TZSET=0
+if test x$ac_cv_func_tzset = xyes
+then
+    U_TZSET=tzset
+    U_HAVE_TZSET=1
+else
+    echo $ac_n "checking for _tzset""... $ac_c" 1>&6
+echo "configure:3042: checking for _tzset" >&5
+if eval "test \"`echo '$''{'ac_cv_func__tzset'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3047 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char _tzset(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char _tzset();
+
+int main() {
+
+/* 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__tzset) || defined (__stub____tzset)
+choke me
+#else
+_tzset();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:3070: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  eval "ac_cv_func__tzset=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_func__tzset=no"
+fi
+del -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'_tzset`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+    if test x$ac_cv_func__tzset = xyes
+    then
+        U_TZSET=_tzset
+        U_HAVE_TZSET=1
+    fi
+fi
+
+
+
+U_HAVE_TZNAME=0
+echo $ac_n "checking for tzname""... $ac_c" 1>&6
+echo "configure:3100: checking for tzname" >&5
+if eval "test \"`echo '$''{'ac_cv_var_tzname'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3105 "configure"
+#include "confdefs.h"
+#ifndef __USE_POSIX
+#define __USE_POSIX
+#endif
+#include <stdlib.h>
+#include <time.h>
+#ifndef tzname /* For SGI.  */
+extern char *tzname[]; /* RS6000 and others reject char **tzname.  */
+#endif
+int main() {
+atoi(*tzname);
+; return 0; }
+EOF
+if { (eval echo configure:3119: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_var_tzname=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_var_tzname=no
+fi
+del -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_var_tzname" 1>&6
+if test $ac_cv_var_tzname = yes; then
+  U_TZNAME=tzname
+  U_HAVE_TZNAME=1
+else
+  echo $ac_n "checking for _tzname""... $ac_c" 1>&6
+echo "configure:3137: checking for _tzname" >&5
+if eval "test \"`echo '$''{'ac_cv_var__tzname'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3142 "configure"
+#include "confdefs.h"
+  #include <stdlib.h>
+  #include <time.h>
+  extern char *_tzname[];
+  
+int main() {
+  atoi(*_tzname);
+; return 0; }
+EOF
+if { (eval echo configure:3152: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_var__tzname=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_var__tzname=no
+fi
+del -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_var__tzname" 1>&6
+    if test $ac_cv_var__tzname = yes; then
+      U_TZNAME=_tzname
+      U_HAVE_TZNAME=1
+    fi
+fi
+
+
+
+echo $ac_n "checking for timezone""... $ac_c" 1>&6
+echo "configure:3174: checking for timezone" >&5
+if eval "test \"`echo '$''{'ac_cv_var_timezone'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3179 "configure"
+#include "confdefs.h"
+#ifndef __USE_POSIX
+#define __USE_POSIX
+#endif
+#ifndef __USE_XOPEN
+#define __USE_XOPEN
+#endif
+#include <time.h>
+
+int main() {
+timezone = 1;
+; return 0; }
+EOF
+if { (eval echo configure:3193: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_var_timezone=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_var_timezone=no
+fi
+del -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_var_timezone" 1>&6
+U_HAVE_TIMEZONE=0
+if test $ac_cv_var_timezone = yes; then
+  U_TIMEZONE=timezone
+  U_HAVE_TIMEZONE=1
+else
+  echo $ac_n "checking for __timezone""... $ac_c" 1>&6
+echo "configure:3212: checking for __timezone" >&5
+if eval "test \"`echo '$''{'ac_cv_var___timezone'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3217 "configure"
+#include "confdefs.h"
+  #include <time.h>
+  
+int main() {
+  __timezone = 1;
+; return 0; }
+EOF
+if { (eval echo configure:3225: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_var___timezone=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_var___timezone=no
+fi
+del -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_var___timezone" 1>&6
+  if test $ac_cv_var___timezone = yes; then
+    U_TIMEZONE=__timezone
+    U_HAVE_TIMEZONE=1
+  else
+    echo $ac_n "checking for _timezone""... $ac_c" 1>&6
+echo "configure:3243: checking for _timezone" >&5
+if eval "test \"`echo '$''{'ac_cv_var__timezone'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3248 "configure"
+#include "confdefs.h"
+    #include <time.h>
+    
+int main() {
+    _timezone = 1;
+; return 0; }
+EOF
+if { (eval echo configure:3256: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_var__timezone=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_var__timezone=no
+fi
+del -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_var__timezone" 1>&6
+    if test $ac_cv_var__timezone = yes; then
+      U_TIMEZONE=_timezone
+      U_HAVE_TIMEZONE=1
+    fi
+  fi
+fi
+
+
+
+echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+echo "configure:3279: checking for ANSI C header files" >&5
+if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3284 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3292: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  del -f conftest*
+  ac_cv_header_stdc=yes
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_header_stdc=no
+fi
+del -f conftest*
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 3309 "configure"
+#include "confdefs.h"
+#include <string.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 &&
+  egrep "memchr" conftest.i >/dev/null 2>&1; then
+  :
+else
+  del -f conftest*
+  ac_cv_header_stdc=no
+fi
+del -f conftest*
+
+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 <<EOF
+#line 3327 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 &&
+  egrep "free" conftest.i >/dev/null 2>&1; then
+  :
+else
+  del -f conftest*
+  ac_cv_header_stdc=no
+fi
+del -f conftest*
+
+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
+  :
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3348 "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int main () { int i; for (i = 0; i < 256; i++)
+if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
+exit (0); }
+
+EOF
+if { (eval echo configure:3359: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; # && (./conftest; exit) 2>/dev/null
+then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_header_stdc=no
+fi
+del -f conftest*
+fi
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_header_stdc" 1>&6
+if test $ac_cv_header_stdc = yes; then
+  cat >> confdefs.h <<\EOF
+#define STDC_HEADERS 1
+EOF
+
+fi
+
+echo $ac_n "checking for int8_t""... $ac_c" 1>&6
+echo "configure:3383: checking for int8_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_int8_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3388 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])int8_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_int8_t=yes
+else
+  del -f conftest*
+  ac_cv_type_int8_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_int8_t" 1>&6
+if test $ac_cv_type_int8_t = no; then
+  cat >> confdefs.h <<\EOF
+#define int8_t signed char
+EOF
+
+fi
+
+echo $ac_n "checking for uint8_t""... $ac_c" 1>&6
+echo "configure:3416: checking for uint8_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_uint8_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3421 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])uint8_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_uint8_t=yes
+else
+  del -f conftest*
+  ac_cv_type_uint8_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_uint8_t" 1>&6
+if test $ac_cv_type_uint8_t = no; then
+  cat >> confdefs.h <<\EOF
+#define uint8_t unsigned char
+EOF
+
+fi
+
+echo $ac_n "checking for int16_t""... $ac_c" 1>&6
+echo "configure:3449: checking for int16_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_int16_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3454 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])int16_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_int16_t=yes
+else
+  del -f conftest*
+  ac_cv_type_int16_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_int16_t" 1>&6
+if test $ac_cv_type_int16_t = no; then
+  cat >> confdefs.h <<\EOF
+#define int16_t signed short
+EOF
+
+fi
+
+echo $ac_n "checking for uint16_t""... $ac_c" 1>&6
+echo "configure:3482: checking for uint16_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_uint16_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3487 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])uint16_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_uint16_t=yes
+else
+  del -f conftest*
+  ac_cv_type_uint16_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_uint16_t" 1>&6
+if test $ac_cv_type_uint16_t = no; then
+  cat >> confdefs.h <<\EOF
+#define uint16_t unsigned short
+EOF
+
+fi
+
+echo $ac_n "checking for int32_t""... $ac_c" 1>&6
+echo "configure:3515: checking for int32_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_int32_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3520 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])int32_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_int32_t=yes
+else
+  del -f conftest*
+  ac_cv_type_int32_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_int32_t" 1>&6
+if test $ac_cv_type_int32_t = no; then
+  cat >> confdefs.h <<\EOF
+#define int32_t signed long
+EOF
+
+fi
+
+echo $ac_n "checking for uint32_t""... $ac_c" 1>&6
+echo "configure:3548: checking for uint32_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_uint32_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3553 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])uint32_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_uint32_t=yes
+else
+  del -f conftest*
+  ac_cv_type_uint32_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_uint32_t" 1>&6
+if test $ac_cv_type_uint32_t = no; then
+  cat >> confdefs.h <<\EOF
+#define uint32_t unsigned long
+EOF
+
+fi
+
+echo $ac_n "checking for int64_t""... $ac_c" 1>&6
+echo "configure:3581: checking for int64_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_int64_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3586 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])int64_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_int64_t=yes
+else
+  del -f conftest*
+  ac_cv_type_int64_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_int64_t" 1>&6
+if test $ac_cv_type_int64_t = no; then
+  cat >> confdefs.h <<\EOF
+#define int64_t signed long long
+EOF
+
+fi
+
+echo $ac_n "checking for uint64_t""... $ac_c" 1>&6
+echo "configure:3614: checking for uint64_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_uint64_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3619 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "(^|[^a-zA-Z_0-9])uint64_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  del -f conftest*
+  ac_cv_type_uint64_t=yes
+else
+  del -f conftest*
+  ac_cv_type_uint64_t=no
+fi
+del -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_uint64_t" 1>&6
+if test $ac_cv_type_uint64_t = no; then
+  cat >> confdefs.h <<\EOF
+#define uint64_t unsigned long long
+EOF
+
+fi
+
+
+if test $ac_cv_type_int8_t = no; then
+HAVE_INT8_T=0
+else
+HAVE_INT8_T=1
+fi
+
+
+if test $ac_cv_type_uint8_t = no; then
+HAVE_UINT8_T=0
+else
+HAVE_UINT8_T=1
+fi
+
+
+if test $ac_cv_type_int16_t = no; then
+HAVE_INT16_T=0
+else
+HAVE_INT16_T=1
+fi
+
+
+if test $ac_cv_type_uint16_t = no; then
+HAVE_UINT16_T=0
+else
+HAVE_UINT16_T=1
+fi
+
+
+if test $ac_cv_type_int32_t = no; then
+HAVE_INT32_T=0
+else
+HAVE_INT32_T=1
+fi
+
+
+if test $ac_cv_type_uint32_t = no; then
+HAVE_UINT32_T=0
+else
+HAVE_UINT32_T=1
+fi
+
+
+if test $ac_cv_type_int64_t = no; then
+HAVE_INT64_T=0
+else
+HAVE_INT64_T=1
+fi
+
+
+if test $ac_cv_type_uint64_t = no; then
+HAVE_UINT64_T=0
+else
+HAVE_UINT64_T=1
+fi
+
+
+ac_safe=`echo "wchar.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for wchar.h""... $ac_c" 1>&6
+echo "configure:3705: checking for wchar.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3710 "configure"
+#include "confdefs.h"
+#include <wchar.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3715: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
+if test -z "$ac_err"; then
+  del -f conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+del -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  :
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+if test "$ac_cv_header_wchar_h" = no
+then
+    U_HAVE_WCHAR_H=0
+    U_HAVE_WCSCPY=0
+else
+    cat >> confdefs.h <<\EOF
+#define HAVE_WCHAR_H 1
+EOF
+
+    U_HAVE_WCHAR_H=1
+        
+echo $ac_n "checking for library containing wcscpy""... $ac_c" 1>&6
+echo "configure:3748: checking for library containing wcscpy" >&5
+if eval "test \"`echo '$''{'ac_cv_search_wcscpy'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_func_search_save_LIBS="$LIBS"
+ac_cv_search_wcscpy="no"
+cat > conftest.$ac_ext <<EOF
+#line 3755 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char wcscpy();
+
+int main() {
+wcscpy()
+; return 0; }
+EOF
+if { (eval echo configure:3766: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_search_wcscpy="none required"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+test "$ac_cv_search_wcscpy" = "no" && for i in wcs w; do
+LIBS="-l$i  $ac_func_search_save_LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 3777 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char wcscpy();
+
+int main() {
+wcscpy()
+; return 0; }
+EOF
+if { (eval echo configure:3788: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext}; then
+  del -f conftest*
+  ac_cv_search_wcscpy="-l$i"
+break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+del -f conftest*
+done
+LIBS="$ac_func_search_save_LIBS"
+fi
+
+echo "$ac_t""$ac_cv_search_wcscpy" 1>&6
+if test "$ac_cv_search_wcscpy" != "no"; then
+  test "$ac_cv_search_wcscpy" = "none required" || LIBS="$ac_cv_search_wcscpy $LIBS"
+  
+else :
+  
+fi
+    if test "$ac_cv_search_wcscpy" != no; then
+      U_HAVE_WCSCPY=1
+    else
+      U_HAVE_WCSCPY=0
+    fi
+fi
+
+
+
+ac_default_sizeof_wchar_t=4
+echo $ac_n "checking size of wchar_t""... $ac_c" 1>&6
+echo "configure:3819: checking size of wchar_t" >&5
+if eval "test \"`echo '$''{'ac_cv_sizeof_wchar_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_sizeof_wchar_t=$ac_default_sizeof_wchar_t
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3827 "configure"
+#include "confdefs.h"
+#if STDC_HEADERS
+#include <stddef.h>
+#endif
+#if HAVE_WCHAR_H
+#include <string.h>
+#include <wchar.h>
+#endif
+#include <stdio.h>
+main()
+{
+  FILE *f=fopen("conftestval", "w");
+  if (!f) exit(1);
+  fprintf(f, "%d\n", sizeof(wchar_t));
+  exit(0);
+}
+EOF
+if { (eval echo configure:3845: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -x conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_sizeof_wchar_t=`cat conftestval`
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  del -f conftest*
+  ac_cv_sizeof_wchar_t=0
+fi
+del -f conftest*
+fi
+
+fi
+echo "$ac_t""$ac_cv_sizeof_wchar_t" 1>&6
+cat >> confdefs.h <<EOF
+#define SIZEOF_WCHAR_T $ac_cv_sizeof_wchar_t
+EOF
+
+
+U_SIZEOF_WCHAR_T=$ac_cv_sizeof_wchar_t
+if test $U_SIZEOF_WCHAR_T = 0; then
+	if test $U_HAVE_WCHAR_H=1; then
+	   { echo "configure: error: There is wchar.h but the size of wchar_t is 0" 1>&2; exit 1; }
+	fi
+fi
+
+
+#dnl Echo
+#ECHO_N=$ac_n
+#ECHO_C=$ac_c
+#AC_SUBST(ECHO_N)
+#AC_SUBST(ECHO_C)
+
+# Check whether --enable-extras or --disable-extras was given.
+if test "${enable_extras+set}" = set; then
+  enableval="$enable_extras"
+  case "${enableval}" in
+		yes) extras=true ;;
+		no)  extras=false ;;
+		*) { echo "configure: error: bad value ${enableval} for --enable-extras" 1>&2; exit 1; } ;;
+		esac
+else
+  extras=true
+fi
+
+
+if test "$extras" = true; then
+  EXTRAS_TRUE=
+else
+  EXTRAS_TRUE='#'
+fi
+# Check whether --enable-extras or --disable-extras was given.
+if test "${enable_extras+set}" = set; then
+  enableval="$enable_extras"
+  case "${enableval}" in
+		yes) icuio=true ;;
+		no)  icuio=false ;;
+		*) { echo "configure: error: bad value ${enableval} for --enable-icuio" 1>&2; exit 1; } ;;
+		esac
+else
+  icuio=true
+fi
+
+
+if test "$icuio" = true; then
+  ICUIO_TRUE=
+else
+  ICUIO_TRUE='#'
+fi
+
+# Check whether --enable-layout or --disable-layout was given.
+if test "${enable_layout+set}" = set; then
+  enableval="$enable_layout"
+  case "${enableval}" in
+		yes) layout=true ;;
+		no)  layout=false ;;
+		*) { echo "configure: error: bad value ${enableval} for --enable-layout" 1>&2; exit 1; } ;;
+		esac
+else
+  layout=true
+fi
+
+
+if test "$layout" = true; then
+  LAYOUT_TRUE=
+else
+  LAYOUT_TRUE='#'
+fi
+
+# Check whether --with-data-packaging or --without-data-packaging was given.
+if test "${with_data_packaging+set}" = set; then
+  withval="$with_data_packaging"
+  case "${withval}" in
+                files|archive|library) datapackaging=$withval ;;
+		auto) datapackaging=$withval ;;
+		common) datapackaging=archive ;;
+		dll) datapackaging=library ;;
+		static) datapackaging=static ;;
+		*) { echo "configure: error: bad value ${withval} for --with-data-packaging" 1>&2; exit 1; } ;;
+		esac
+else
+  datapackaging=
+fi
+
+
+thesysconfdir=`eval echo $sysconfdir`
+
+thedatadir=`eval echo $datadir`
+
+thelibdir=`test "x$exec_prefix" = xNONE && exec_prefix="$prefix"; eval echo $libdir`
+
+pkgicudatadir=$datadir
+thepkgicudatadir=$thedatadir
+
+
+
+
+# Check whether --enable-mapped or --disable-mapped was given.
+if test "${enable_mapped+set}" = set; then
+  enableval="$enable_mapped"
+  case "${enableval}" in
+               yes) mapped=archive ;;
+               no)  mapped=library ;;
+               *) { echo "configure: error: bad value ${enableval} for --enable-mapped; use --with-data-packaging now" 1>&2; exit 1; } ;;
+	esac
+else
+  mapped=
+fi
+
+
+if test x"$mapped" != x; then
+    case $mapped in
+	archive)
+    	    echo "configure: warning: use --with-data-packaging=archive instead of --enable-mapped" 1>&2
+	    ;;
+	library)
+    	    echo "configure: warning: use --with-data-packaging=library instead of --disable-mapped" 1>&2
+	    ;;
+    esac
+    if test x"$datapackaging" != x -a x"$mapped" != x"$datapackaging"; then
+	{ echo "configure: error: conflicting values used for --with-data-packaging and deprecated --enable-mapped" 1>&2; exit 1; }
+    fi
+    datapackaging=$mapped
+fi
+
+if test x"$datapackaging" = x -o x"$datapackaging" = xauto; then
+	datapackaging=library
+fi
+
+case "$datapackaging" in
+    files)
+	DATA_PACKAGING_CPPFLAGS=-DUDATA_FILES
+	DATA_PACKAGING_MODE=files
+	;;
+    archive)
+	DATA_PACKAGING_CPPFLAGS=-DUDATA_MAP
+	DATA_PACKAGING_MODE=common
+	;;
+    library)
+	DATA_PACKAGING_CPPFLAGS=-DUDATA_DLL
+	DATA_PACKAGING_MODE=dll
+	;;
+esac
+
+
+
+echo $ac_n "checking for a library suffix to use""... $ac_c" 1>&6
+echo "configure:4012: checking for a library suffix to use" >&5
+# Check whether --with-library-suffix or --without-library-suffix was given.
+if test "${with_library_suffix+set}" = set; then
+  withval="$with_library_suffix"
+  ICULIBSUFFIX="${withval}"
+else
+  ICULIBSUFFIX=
+fi
+
+msg=$ICULIBSUFFIX
+if test "$msg" = ""; then
+    msg=none
+fi
+echo "$ac_t""$msg" 1>&6
+
+if test "$ICULIBSUFFIX" != ""
+then
+    U_HAVE_LIB_SUFFIX=1
+    ICULIBSUFFIXCNAME=`echo _$ICULIBSUFFIX | sed 's/[^A-Za-z0-9_]/_/g'`
+else
+    U_HAVE_LIB_SUFFIX=0
+fi
+
+
+
+# Check whether --enable-tests or --disable-tests was given.
+if test "${enable_tests+set}" = set; then
+  enableval="$enable_tests"
+  case "${enableval}" in
+		yes) tests=true ;;
+		no)  tests=false ;;
+		*) { echo "configure: error: bad value ${enableval} for --enable-tests" 1>&2; exit 1; } ;;
+		esac
+else
+  tests=true
+fi
+
+
+if test "$tests" = true; then
+  TESTS_TRUE=
+else
+  TESTS_TRUE='#'
+fi
+
+# Check whether --enable-samples or --disable-samples was given.
+if test "${enable_samples+set}" = set; then
+  enableval="$enable_samples"
+  case "${enableval}" in
+		yes) samples=true ;;
+		no)  samples=false ;;
+		*) { echo "configure: error: bad value ${enableval} for --enable-samples" 1>&2; exit 1; } ;;
+		esac
+else
+  samples=true
+fi
+
+
+if test "$samples" = true; then
+  SAMPLES_TRUE=
+else
+  SAMPLES_TRUE='#'
+fi
+
+ICUDATA_CHAR=$U_ENDIAN_CHAR
+
+case "${host}" in
+	*-*-solaris*) 	platform=U_SOLARIS ;;
+	*-*-linux*) 	platform=U_LINUX ;;
+	*-*-*bsd*) 	platform=U_BSD ;;
+	*-*-aix*) 	platform=U_AIX ;;
+	*-*-hpux*) 	platform=U_HPUX ;;
+	*-apple-darwin*|*-apple-rhapsody*)	platform=U_DARWIN ;;
+	*-*-cygwin*|*-*-mingw*)	platform=U_CYGWIN ;;
+	*-*ibm-openedition*|*-*-os390*)	platform=OS390
+			ICUDATA_CHAR="e" ;;
+	*-*-os400*)	platform=OS400
+			ICUDATA_CHAR="e" ;;
+	*-*-nto*)	platform=U_QNX ;;
+	*-dec-osf*) 	platform=U_OSF ;;
+	*-*-beos)		platform=U_BEOS ;;
+	*-*-irix*)		platform=U_IRIX ;;
+	*-ncr-*)		platform=U_MPRAS ;;
+	*-sequent-*)	platform=PTX ;;
+	*) 		platform=U_UNKNOWN_PLATFORM ;;
+esac
+
+
+platform_make_fragment_name="$icu_cv_host_frag"
+platform_make_fragment='$(top_srcdir)/config/'"$platform_make_fragment_name"
+
+
+
+case "${host}" in
+	*-*-solaris*) 	ld_rpath_suf=":" ;;
+	*-*-linux*) 	ld_rpath_suf=" " ;;
+	*-*-*bsd*) 	ld_rpath_suf=" " ;;
+	*-*-aix*) 	ld_rpath_suf="" ;;
+	*-*-hpux*) 	ld_rpath_suf=":" ;;
+	*-*ibm-openedition*|*-*-os390*)	ld_rpath_suf="" ;;
+	*-*-os400*)	ld_rpath_suf=" " ;;
+	*-sequent-*)	ld_rpath_suf="" ;;
+	*-*-irix*)      ld_rpath_suf=" " ;;
+	*) 		ld_rpath_suf="" ;;
+esac
+
+
+case "${host}" in
+	*-*-hpux*) 	
+		if test "${icu_cv_host_frag}" = "mh-hpux-cc"; then
+			for file in samples/date/date \
+			  samples/cal/cal test/cintltst/cintltst \
+			  tools/makeconv/makeconv tools/genrb/genrb \
+			  tools/genrb/derb tools/genccode/genccode \
+			  tools/gencmn/gencmn tools/gencmn/decmn \
+			  tools/gencnval/gencnval tools/gennorm/gennorm \
+			  tools/gennames/gennames tools/gentest/gentest \
+			  tools/pkgdata/pkgdata tools/genprops/genprops \
+                          tools/gencase/gencase \
+                          tools/genbidi/genbidi \
+			  tools/gensprep/gensprep
+			do
+			  if test -f $file.c; then
+			    mv $file.c $file.cpp
+			  else
+			    echo "# $file.c does not exist or is already renamed [warning]"
+			  fi
+			done
+		fi
+	;;
+esac
+
+if test "${FORCE_LIBS}" != ""; then
+   echo " *** Overriding automatically chosen LIBS=$LIBS, using instead FORCE_LIBS=${FORCE_LIBS}"  1>&6
+   LIBS=${FORCE_LIBS}
+fi
+
+
+if test "${AIX_SHLIB}" != ""; then
+   echo " *** setting AIX_SHLIB (AIX only) to ${AIX_SHLIB}]"  1>&6
+else
+   AIX_SHLIB=makeC++SharedLib_r
+fi
+
+
+
+
+
+if test $ICU_USE_THREADS -ne 0
+then
+    CPPFLAGS="$CPPFLAGS \$(THREADSCPPFLAGS)"
+    CFLAGS="$CFLAGS \$(THREADSCFLAGS)"
+    CXXFLAGS="$CXXFLAGS \$(THREADSCXXFLAGS)"
+fi
+
+trap '' 1 2 15
+cat > confcache <<\EOF
+# This file is a shell script that caches the results of configure
+# tests run on this system so they can be shared between configure
+# scripts and configure runs.  It is not useful on other systems.
+# If it contains results you don't want to keep, you may remove or edit it.
+#
+# By default, configure uses ./config.cache as the cache file,
+# creating it if it does not exist already.  You can give configure
+# the --cache-file=FILE option to use a different cache file; that is
+# what configure does when it calls configure scripts in
+# subdirectories, so they share the cache.
+# Giving --cache-file=/dev/null disables caching, for debugging configure.
+# config.status only pays attention to the cache file if you give it the
+# --recheck option to rerun configure.
+#
+EOF
+# The following way of writing the cache mishandles newlines in values,
+# but we know of no workaround that is simple, portable, and efficient.
+# So, don't put newlines in cache variables' values.
+# Ultrix sh set writes to stderr and can't be redirected directly,
+# and sets the high bit in the cache file unless we assign to the vars.
+(set) 2>&1 |
+  case `(ac_space=' '; set | grep ac_space) 2>&1` in
+  *ac_space=\ *)
+    # `set' does not quote correctly, so add quotes (double-quote substitution
+    # turns \\\\ into \\, and sed turns \\ into \).
+    sed -n \
+      -e "s/'/'\\\\''/g" \
+      -e "s/^\\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\\)=\\(.*\\)/\\1=\${\\1='\\2'}/p"
+    ;;
+  *)
+    # `set' quotes correctly as required by POSIX, so do not add quotes.
+    sed -n -e 's/^\([a-zA-Z0-9_]*_cv_[a-zA-Z0-9_]*\)=\(.*\)/\1=${\1=\2}/p'
+    ;;
+  esac >> confcache
+if cmp -s $cache_file confcache; then
+  :
+else
+  if test -w $cache_file; then
+    echo "updating cache $cache_file"
+    cat confcache > $cache_file
+  else
+    echo "not updating unwritable cache $cache_file"
+  fi
+fi
+del -f confcache
+
+trap 'del -f conftest* confdefs* core core.* *.core $ac_clean_files; exit 1' 1 2 15
+
+test "x$prefix" = xNONE && prefix=$ac_default_prefix
+# Let make expand exec_prefix.
+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
+
+# Any assignment to VPATH causes Sun make to only execute
+# the first set of double-colon rules, so remove it if not needed.
+# If there is a colon in the path, we need to keep it.
+if test "x$srcdir" = x.; then
+  ac_vpsub='/^[ 	]*VPATH[ 	]*=[^:]*$/d'
+fi
+
+trap 'del -f $CONFIG_STATUS conftest*; exit 1' 1 2 15
+
+DEFS=-DHAVE_CONFIG_H
+
+# Without the "./", some shells look in PATH for config.status.
+: ${CONFIG_STATUS=./config.status}
+
+echo creating $CONFIG_STATUS
+del -f $CONFIG_STATUS
+cat > $CONFIG_STATUS <<EOF
+#! /usr/bin/qsh
+# Generated automatically by configure.
+# Run this file to recreate the current configuration.
+# This directory was configured as follows,
+# on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
+#
+# $0 $ac_configure_args
+#
+# Compiler output produced by configure, useful for debugging
+# configure, is in ./config.log if it exists.
+
+ac_cs_usage="Usage: $CONFIG_STATUS [--recheck] [--version] [--help]"
+for ac_option
+do
+  case "\$ac_option" in
+  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
+    echo "running \${CONFIG_SHELL-/usr/bin/qsh} $0 $ac_configure_args --no-create --no-recursion"
+    exec \${CONFIG_SHELL-/usr/bin/qsh} $0 $ac_configure_args --no-create --no-recursion ;;
+  -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
+    echo "$CONFIG_STATUS generated by autoconf version 2.13"
+    exit 0 ;;
+  -help | --help | --hel | --he | --h)
+    echo "\$ac_cs_usage"; exit 0 ;;
+  *) echo "\$ac_cs_usage"; exit 1 ;;
+  esac
+done
+
+ac_given_srcdir=$srcdir
+ac_given_INSTALL="$INSTALL"
+
+trap 'del -f `echo "icudefs.mk \
+		Makefile \
+		data/icupkg.inc \
+		config/Makefile.inc \
+		data/Makefile \
+		stubdata/Makefile \
+		common/Makefile \
+		i18n/Makefile \
+		layout/Makefile \
+		layoutex/Makefile \
+		io/Makefile \
+		extra/Makefile \
+		extra/uconv/Makefile extra/scrptrun/Makefile \
+		tools/Makefile tools/ctestfw/Makefile \
+		tools/makeconv/Makefile \
+		tools/genrb/Makefile \
+		tools/genuca/Makefile \
+		tools/genccode/Makefile \
+		tools/gencmn/Makefile \
+		tools/gencnval/Makefile \
+		tools/gennames/Makefile \
+		tools/gentest/Makefile \
+		tools/gennorm/Makefile \
+		tools/genprops/Makefile \
+		tools/gencase/Makefile \
+		tools/genbidi/Makefile \
+		tools/genpname/Makefile \
+		tools/genbrk/Makefile \
+		tools/gensprep/Makefile \
+		tools/icuswap/Makefile \
+		tools/pkgdata/Makefile \
+		tools/toolutil/Makefile \
+		tools/dumpce/Makefile \
+		test/Makefile \
+		test/testdata/Makefile \
+		test/testdata/pkgdata.inc \
+		test/hdrtst/Makefile \
+		test/intltest/Makefile \
+		test/cintltst/Makefile \
+		test/iotest/Makefile \
+		test/thaitest/Makefile \
+		test/testmap/Makefile \
+		test/letest/Makefile \
+		test/threadtest/Makefile \
+		samples/Makefile samples/date/Makefile \
+		samples/cal/Makefile samples/layout/Makefile \
+		common/unicode/platform.h common/icucfg.h" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+# Protect against being on the right side of a sed subst in config.status.
+sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
+ s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
+$ac_vpsub
+$extrasub
+s%@SHELL@%$SHELL%g
+s%@CFLAGS@%$CFLAGS%g
+s%@CPPFLAGS@%$CPPFLAGS%g
+s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
+s%@DEFS@%$DEFS%g
+s%@LDFLAGS@%$LDFLAGS%g
+s%@LIBS@%$LIBS%g
+s%@exec_prefix@%$exec_prefix%g
+s%@prefix@%$prefix%g
+s%@program_transform_name@%$program_transform_name%g
+s%@bindir@%$bindir%g
+s%@sbindir@%$sbindir%g
+s%@libexecdir@%$libexecdir%g
+s%@datadir@%$datadir%g
+s%@sysconfdir@%$sysconfdir%g
+s%@sharedstatedir@%$sharedstatedir%g
+s%@localstatedir@%$localstatedir%g
+s%@libdir@%$libdir%g
+s%@includedir@%$includedir%g
+s%@oldincludedir@%$oldincludedir%g
+s%@infodir@%$infodir%g
+s%@mandir@%$mandir%g
+s%@PACKAGE@%$PACKAGE%g
+s%@VERSION@%$VERSION%g
+s%@LIB_VERSION@%$LIB_VERSION%g
+s%@LIB_VERSION_MAJOR@%$LIB_VERSION_MAJOR%g
+s%@UNICODE_VERSION@%$UNICODE_VERSION%g
+s%@CC@%$CC%g
+s%@CXX@%$CXX%g
+s%@INSTALL_PROGRAM@%$INSTALL_PROGRAM%g
+s%@INSTALL_SCRIPT@%$INSTALL_SCRIPT%g
+s%@INSTALL_DATA@%$INSTALL_DATA%g
+s%@STRIP@%$STRIP%g
+s%@U_MAKE@%$U_MAKE%g
+s%@DOXYGEN@%$DOXYGEN%g
+s%@host@%$host%g
+s%@host_alias@%$host_alias%g
+s%@host_cpu@%$host_cpu%g
+s%@host_vendor@%$host_vendor%g
+s%@host_os@%$host_os%g
+s%@EXEEXT@%$EXEEXT%g
+s%@ARFLAGS@%$ARFLAGS%g
+s%@COMPILE_LINK_ENVVAR@%$COMPILE_LINK_ENVVAR%g
+s%@LIB_M@%$LIB_M%g
+s%@ENABLE_SHARED@%$ENABLE_SHARED%g
+s%@ENABLE_STATIC@%$ENABLE_STATIC%g
+s%@ENABLE_DEBUG@%$ENABLE_DEBUG%g
+s%@ENABLE_RELEASE@%$ENABLE_RELEASE%g
+s%@RANLIB@%$RANLIB%g
+s%@AR@%$AR%g
+s%@U_DISABLE_RENAMING@%$U_DISABLE_RENAMING%g
+s%@U_ENABLE_TRACING@%$U_ENABLE_TRACING%g
+s%@ENABLE_RPATH@%$ENABLE_RPATH%g
+s%@U_INLINE@%$U_INLINE%g
+s%@THREADS_TRUE@%$THREADS_TRUE%g
+s%@ICU_USE_THREADS@%$ICU_USE_THREADS%g
+s%@HAVE_MMAP@%$HAVE_MMAP%g
+s%@GENCCODE_ASSEMBLY@%$GENCCODE_ASSEMBLY%g
+s%@CPP@%$CPP%g
+s%@U_HAVE_INTTYPES_H@%$U_HAVE_INTTYPES_H%g
+s%@CXXCPP@%$CXXCPP%g
+s%@U_IOSTREAM_SOURCE@%$U_IOSTREAM_SOURCE%g
+s%@U_IS_BIG_ENDIAN@%$U_IS_BIG_ENDIAN%g
+s%@U_HAVE_NL_LANGINFO@%$U_HAVE_NL_LANGINFO%g
+s%@U_HAVE_NL_LANGINFO_CODESET@%$U_HAVE_NL_LANGINFO_CODESET%g
+s%@U_NL_LANGINFO_CODESET@%$U_NL_LANGINFO_CODESET%g
+s%@U_HAVE_NAMESPACE@%$U_HAVE_NAMESPACE%g
+s%@U_OVERRIDE_CXX_ALLOCATION@%$U_OVERRIDE_CXX_ALLOCATION%g
+s%@U_HAVE_PLACEMENT_NEW@%$U_HAVE_PLACEMENT_NEW%g
+s%@U_HAVE_POPEN@%$U_HAVE_POPEN%g
+s%@U_HAVE_TZSET@%$U_HAVE_TZSET%g
+s%@U_TZSET@%$U_TZSET%g
+s%@U_HAVE_TZNAME@%$U_HAVE_TZNAME%g
+s%@U_TZNAME@%$U_TZNAME%g
+s%@U_HAVE_TIMEZONE@%$U_HAVE_TIMEZONE%g
+s%@U_TIMEZONE@%$U_TIMEZONE%g
+s%@HAVE_INT8_T@%$HAVE_INT8_T%g
+s%@HAVE_UINT8_T@%$HAVE_UINT8_T%g
+s%@HAVE_INT16_T@%$HAVE_INT16_T%g
+s%@HAVE_UINT16_T@%$HAVE_UINT16_T%g
+s%@HAVE_INT32_T@%$HAVE_INT32_T%g
+s%@HAVE_UINT32_T@%$HAVE_UINT32_T%g
+s%@HAVE_INT64_T@%$HAVE_INT64_T%g
+s%@HAVE_UINT64_T@%$HAVE_UINT64_T%g
+s%@U_HAVE_WCHAR_H@%$U_HAVE_WCHAR_H%g
+s%@U_HAVE_WCSCPY@%$U_HAVE_WCSCPY%g
+s%@U_SIZEOF_WCHAR_T@%$U_SIZEOF_WCHAR_T%g
+s%@EXTRAS_TRUE@%$EXTRAS_TRUE%g
+s%@ICUIO_TRUE@%$ICUIO_TRUE%g
+s%@LAYOUT_TRUE@%$LAYOUT_TRUE%g
+s%@thesysconfdir@%$thesysconfdir%g
+s%@thedatadir@%$thedatadir%g
+s%@thelibdir@%$thelibdir%g
+s%@pkgicudatadir@%$pkgicudatadir%g
+s%@thepkgicudatadir@%$thepkgicudatadir%g
+s%@DATA_PACKAGING_CPPFLAGS@%$DATA_PACKAGING_CPPFLAGS%g
+s%@DATA_PACKAGING_MODE@%$DATA_PACKAGING_MODE%g
+s%@ICULIBSUFFIX@%$ICULIBSUFFIX%g
+s%@U_HAVE_LIB_SUFFIX@%$U_HAVE_LIB_SUFFIX%g
+s%@ICULIBSUFFIXCNAME@%$ICULIBSUFFIXCNAME%g
+s%@TESTS_TRUE@%$TESTS_TRUE%g
+s%@SAMPLES_TRUE@%$SAMPLES_TRUE%g
+s%@ICUDATA_CHAR@%$ICUDATA_CHAR%g
+s%@platform@%$platform%g
+s%@platform_make_fragment_name@%$platform_make_fragment_name%g
+s%@platform_make_fragment@%$platform_make_fragment%g
+s%@ld_rpath_suf@%$ld_rpath_suf%g
+s%@AIX_SHLIB@%$AIX_SHLIB%g
+
+CEOF
+EOF
+
+cat >> $CONFIG_STATUS <<\EOF
+
+# Split the substitutions into bite-sized pieces for seds with
+# small command number limits, like on Digital OSF/1 and HP-UX.
+ac_max_sed_cmds=90 # Maximum number of lines to put in a sed script.
+ac_file=1 # Number of current file.
+ac_beg=1 # First line for current file.
+ac_end=$ac_max_sed_cmds # Line after last line for current file.
+ac_more_lines=:
+ac_sed_cmds=""
+while $ac_more_lines; do
+  if test $ac_beg -gt 1; then
+    sed "1,${ac_beg}d; ${ac_end}q" conftest.subs > conftest.s$ac_file
+  else
+    sed "${ac_end}q" conftest.subs > conftest.s$ac_file
+  fi
+  if test ! -s conftest.s$ac_file; then
+    ac_more_lines=false
+    del -f conftest.s$ac_file
+  else
+    if test -z "$ac_sed_cmds"; then
+      ac_sed_cmds="sed -f conftest.s$ac_file"
+    else
+      ac_sed_cmds="$ac_sed_cmds | sed -f conftest.s$ac_file"
+    fi
+    ac_file=`expr $ac_file + 1`
+    ac_beg=$ac_end
+    ac_end=`expr $ac_end + $ac_max_sed_cmds`
+  fi
+done
+if test -z "$ac_sed_cmds"; then
+  ac_sed_cmds=cat
+fi
+EOF
+
+cat >> $CONFIG_STATUS <<EOF
+
+CONFIG_FILES=\${CONFIG_FILES-"icudefs.mk \
+		Makefile \
+		data/icupkg.inc \
+		config/Makefile.inc \
+		data/Makefile \
+		stubdata/Makefile \
+		common/Makefile \
+		i18n/Makefile \
+		layout/Makefile \
+		layoutex/Makefile \
+		io/Makefile \
+		extra/Makefile \
+		extra/uconv/Makefile extra/scrptrun/Makefile \
+		tools/Makefile tools/ctestfw/Makefile \
+		tools/makeconv/Makefile \
+		tools/genrb/Makefile \
+		tools/genuca/Makefile \
+		tools/genccode/Makefile \
+		tools/gencmn/Makefile \
+		tools/gencnval/Makefile \
+		tools/gennames/Makefile \
+		tools/gentest/Makefile \
+		tools/gennorm/Makefile \
+		tools/genprops/Makefile \
+		tools/gencase/Makefile \
+		tools/genbidi/Makefile \
+		tools/genpname/Makefile \
+		tools/genbrk/Makefile \
+		tools/gensprep/Makefile \
+		tools/icuswap/Makefile \
+		tools/pkgdata/Makefile \
+		tools/toolutil/Makefile \
+		tools/dumpce/Makefile \
+		test/Makefile \
+		test/testdata/Makefile \
+		test/testdata/pkgdata.inc \
+		test/hdrtst/Makefile \
+		test/intltest/Makefile \
+		test/cintltst/Makefile \
+		test/iotest/Makefile \
+		test/thaitest/Makefile \
+		test/testmap/Makefile \
+		test/letest/Makefile \
+		test/threadtest/Makefile \
+		samples/Makefile samples/date/Makefile \
+		samples/cal/Makefile samples/layout/Makefile \
+		common/unicode/platform.h"}
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  # Adjust a relative srcdir, top_srcdir, and INSTALL for subdirectories.
+
+  # Remove last slash and all that follows it.  Not all systems have dirname.
+  ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+  if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+    # The file is in a subdirectory.
+    test ! -d "$ac_dir" && mkdir "$ac_dir"
+    ac_dir_suffix="/`echo $ac_dir|sed 's%^\./%%'`"
+    # A "../" for each directory in $ac_dir_suffix.
+    ac_dots=`echo $ac_dir_suffix|sed 's%/[^/]*%../%g'`
+  else
+    ac_dir_suffix= ac_dots=
+  fi
+
+  case "$ac_given_srcdir" in
+  .)  srcdir=.
+      if test -z "$ac_dots"; then top_srcdir=.
+      else top_srcdir=`echo $ac_dots|sed 's%/$%%'`; fi ;;
+  /*) srcdir="$ac_given_srcdir$ac_dir_suffix"; top_srcdir="$ac_given_srcdir" ;;
+  *) # Relative path.
+    srcdir="$ac_dots$ac_given_srcdir$ac_dir_suffix"
+    top_srcdir="$ac_dots$ac_given_srcdir" ;;
+  esac
+
+  case "$ac_given_INSTALL" in
+  [/$]*) INSTALL="$ac_given_INSTALL" ;;
+  *) INSTALL="$ac_dots$ac_given_INSTALL" ;;
+  esac
+
+  echo creating "$ac_file"
+  del -f "$ac_file"
+  configure_input="Generated automatically from `echo $ac_file_in|sed 's%.*/%%'` by configure."
+  case "$ac_file" in
+  *Makefile*) ac_comsub="1i\\
+# $configure_input" ;;
+  *) ac_comsub= ;;
+  esac
+
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+  sed -e "$ac_comsub
+s%@configure_input@%$configure_input%g
+s%@srcdir@%$srcdir%g
+s%@top_srcdir@%$top_srcdir%g
+s%@INSTALL@%$INSTALL%g
+" $ac_file_inputs | (eval "$ac_sed_cmds") > $ac_file
+fi; done
+del -f conftest.s*
+
+# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where
+# NAME is the cpp macro being defined and VALUE is the value it is being given.
+#
+# ac_d sets the value in "#define NAME VALUE" lines.
+ac_dA='s%^\([ 	]*\)#\([ 	]*define[ 	][ 	]*\)'
+ac_dB='\([ 	][ 	]*\)[^ 	]*%\1#\2'
+ac_dC='\3'
+ac_dD='%g'
+# ac_u turns "#undef NAME" with trailing blanks into "#define NAME VALUE".
+ac_uA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_uB='\([ 	]\)%\1#\2define\3'
+ac_uC=' '
+ac_uD='\4%g'
+# ac_e turns "#undef NAME" without trailing blanks into "#define NAME VALUE".
+ac_eA='s%^\([ 	]*\)#\([ 	]*\)undef\([ 	][ 	]*\)'
+ac_eB='$%\1#\2define\3'
+ac_eC=' '
+ac_eD='%g'
+
+if test "${CONFIG_HEADERS+set}" != set; then
+EOF
+cat >> $CONFIG_STATUS <<EOF
+  CONFIG_HEADERS="common/icucfg.h"
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+fi
+for ac_file in .. $CONFIG_HEADERS; do if test "x$ac_file" != x..; then
+  # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in".
+  case "$ac_file" in
+  *:*) ac_file_in=`echo "$ac_file"|sed 's%[^:]*:%%'`
+       ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;;
+  *) ac_file_in="${ac_file}.in" ;;
+  esac
+
+  echo creating $ac_file
+
+  del -f conftest.frag conftest.in conftest.out
+  ac_file_inputs=`echo $ac_file_in|sed -e "s%^%$ac_given_srcdir/%" -e "s%:% $ac_given_srcdir/%g"`
+  cat $ac_file_inputs > conftest.in
+
+EOF
+
+# Transform confdefs.h into a sed script conftest.vals that substitutes
+# the proper values into config.h.in to produce config.h.  And first:
+# Protect against being on the right side of a sed subst in config.status.
+# Protect against being in an unquoted here document in config.status.
+del -f conftest.vals
+cat > conftest.hdr <<\EOF
+s/[\\&%]/\\&/g
+s%[\\$`]%\\&%g
+s%#define \([A-Za-z_][A-Za-z0-9_]*\) *\(.*\)%${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD}%gp
+s%ac_d%ac_u%gp
+s%ac_u%ac_e%gp
+EOF
+sed -n -f conftest.hdr confdefs.h > conftest.vals
+del -f conftest.hdr
+
+# This sed command replaces #undef with comments.  This is necessary, for
+# example, in the case of _POSIX_SOURCE, which is predefined and required
+# on some systems where configure will not decide to define it.
+cat >> conftest.vals <<\EOF
+s%^[ 	]*#[ 	]*undef[ 	][ 	]*[a-zA-Z_][a-zA-Z_0-9]*%/* & */%
+EOF
+
+# Break up conftest.vals because some shells have a limit on
+# the size of here documents, and old seds have small limits too.
+
+del -f conftest.tail
+while :
+do
+  ac_lines=`grep -c . conftest.vals`
+  # grep -c gives empty output for an empty file on some AIX systems.
+  if test -z "$ac_lines" || test "$ac_lines" -eq 0; then break; fi
+  # Write a limited-size here document to conftest.frag.
+  echo '  cat > conftest.frag <<CEOF' >> $CONFIG_STATUS
+  sed ${ac_max_here_lines}q conftest.vals >> $CONFIG_STATUS
+  echo 'CEOF
+  sed -f conftest.frag conftest.in > conftest.out
+  del -f conftest.in
+  mv conftest.out conftest.in
+' >> $CONFIG_STATUS
+  sed 1,${ac_max_here_lines}d conftest.vals > conftest.tail
+  del -f conftest.vals
+  mv conftest.tail conftest.vals
+done
+del -f conftest.vals
+
+cat >> $CONFIG_STATUS <<\EOF
+  del -f conftest.frag conftest.h
+  echo "/* $ac_file.  Generated automatically by configure.  */" > conftest.h
+  cat conftest.in >> conftest.h
+  del -f conftest.in
+  if cmp -s $ac_file conftest.h 2>/dev/null; then
+    echo "$ac_file is unchanged"
+    del -f conftest.h
+  else
+    # Remove last slash and all that follows it.  Not all systems have dirname.
+      ac_dir=`echo $ac_file|sed 's%/[^/][^/]*$%%'`
+      if test "$ac_dir" != "$ac_file" && test "$ac_dir" != .; then
+      # The file is in a subdirectory.
+      test ! -d "$ac_dir" && mkdir "$ac_dir"
+    fi
+    del -f $ac_file
+    mv conftest.h $ac_file
+  fi
+fi; done
+
+EOF
+cat >> $CONFIG_STATUS <<EOF
+
+EOF
+cat >> $CONFIG_STATUS <<\EOF
+
+exit 0
+EOF
+chmod +x $CONFIG_STATUS
+del -f confdefs* $ac_clean_files
+test "$no_create" = yes || ${CONFIG_SHELL-/usr/bin/qsh} $CONFIG_STATUS || exit 1
+
+
+if test $ICU_USE_THREADS = 0; then
+  echo  " *** Note: configuring the ICU without pthread support or testing. If this isn't what you want, then run configure with --enable-threads=yes or check the messages above to see why we couldn't find pthread_create()" 1>&6
+fi
+
+echo "You must use $U_MAKE to build ICU."
diff --git a/as_is/os400/unpax-icu.sh b/as_is/os400/unpax-icu.sh
new file mode 100755
index 0000000..eb939fc
--- /dev/null
+++ b/as_is/os400/unpax-icu.sh
@@ -0,0 +1,147 @@
+#!/usr/bin/qsh
+#   Copyright (C) 2000-2004, International Business Machines
+#   Corporation and others.  All Rights Reserved.
+#
+# Authors:
+# Ami Fixler
+# Barry Novinger
+# Steven R. Loomis <srl@jtcsv.com>
+# George Rhoten
+#
+# Shell script to unpax ICU and convert the files to an EBCDIC codepage.
+# After extracting to EBCDIC, binary files are re-extracted without the
+# EBCDIC conversion, thus restoring them to original codepage.
+#
+# Set the following variable to the list of binary file suffixes (extensions)
+
+#binary_suffixes='ico ICO bmp BMP jpg JPG gif GIF brk BRK'
+#ICU specific binary files
+binary_suffixes='brk BRK bin BIN res RES cnv CNV dat DAT icu ICU spp SPP'
+data_files='icu/source/data/brkitr/* icu/source/data/locales/* icu/source/data/coll/* icu/source/data/rbnf/* icu/source/data/mappings/* icu/source/data/misc/* icu/source/data/translit/* icu/source/data/unidata/* icu/source/test/testdata/*'
+
+usage()
+{
+  echo "Enter archive filename as a parameter: $0 icu-archive.tar [strip]"
+  echo "(strip is an option to remove hex '0D' carraige returns)"
+}
+# first make sure we at least one arg and it's a file we can read
+if [ $# -eq 0 ]; then
+  usage
+  exit
+fi
+if [ ! -r $1 ]; then
+  echo "$1 does not exist or cannot be read."
+  usage
+  exit
+fi
+# set up a few variables
+
+echo ""
+echo "Extracting from $1 ..."
+echo ""
+# extract everything as iso-8859-1 except these directories
+pax -C 819 -rcvf $1 $data_files
+
+# extract files while converting them to EBCDIC
+echo ""
+echo "Extracting files which must be in ibm-37 ..."
+echo ""
+pax -C 37 -rvf $1 $data_files
+
+if [ $# -gt 1 ]; then 
+  if [ $2 -eq strip ]; then
+    echo ""
+    echo "Stripping hex 0d characters ..."
+    for i in $(pax -f $1 2>/dev/null)
+    do
+      case $i in
+        */)
+         # then this entry is a directory
+         ;;
+        *)
+          # then this entry is NOT a directory
+          tr -d 
+ <$i >@@@icu@tmp
+          chmod +w $i
+          rm $i
+          mv @@@icu@tmp $i
+          ;;
+       esac
+    done
+  fi
+fi
+
+echo ""
+echo "Determining binary files ..."
+echo ""
+
+#for dir in `find ./icu -type d \( -name CVS -o -print \)`; do
+#    if [ -f $dir/CVS/Entries ]; then
+#        binary_files="$binary_files`cat $dir/CVS/Entries | fgrep -- -kb \
+#                      | cut -d / -f2 | sed -e "s%^%$dir/%" \
+#                      | sed -e "s%^\./%%" | tr '\n' ' '`"
+#    fi
+#done
+#echo "Detecting Unicode files"
+for file in `find ./icu \( -name \*.txt -print \)`; do
+    bom8=`head -n 1 $file|\
+          od -t x1|\
+          head -n 1|\
+          sed 's/  */ /g'|\
+          cut -f2-4 -d ' '|\
+          tr 'A-Z' 'a-z'`;
+#    echo "bom8 is" $bom8 "for" $file
+#    bom8=`head -c 3 $file|od -t x1|head -n 1|cut -d ' ' -f2-4`;
+    #Find a converted UTF-8 BOM
+    if [ "$bom8" = "057 08b 0ab" -o "$bom8" = "57 8b ab" ]
+    then
+        if [ `echo $binary_files1 | wc -w` -lt 250 ]
+        then
+            binary_files1="$binary_files1 `echo $file | cut -d / -f2-`";
+        else
+            binary_files2="$binary_files2 `echo $file | cut -d / -f2-`";
+        fi
+    fi
+done
+
+#echo $binary_files1
+#echo $binary_files2
+
+for i in $(pax -f $1 2>/dev/null)
+do
+  case $i in
+    */)
+#    then this entry is a directory
+     ;;
+    *.*)
+#    then this entry has a dot in the filename
+     for j in $binary_suffixes
+     do
+       suf=${i#*.*}
+       if [ "$suf" = "$j" ]
+       then
+         binary_files2="$binary_files2 $i"
+         break
+       fi
+     done
+     ;;
+    *)
+#    then this entry does not have a dot in it
+     ;;
+  esac
+done
+
+# now see if a re-extract of binary files is necessary
+if [ ${#binary_files1} -eq 0 -a ${#binary_files2} -eq 0 ]; then
+  echo ""
+  echo "There are no binary files to restore."
+else
+  echo "Restoring binary files ..."
+  echo ""
+  rm $binary_files1
+  rm $binary_files2
+  pax -C 819 -rvf $1 $binary_files1
+  pax -C 819 -rvf $1 $binary_files2
+fi
+echo ""
+echo "$0 has completed extracting ICU from $1."
diff --git a/debian/.cvsignore b/debian/.cvsignore
new file mode 100644
index 0000000..2fe3e9b
--- /dev/null
+++ b/debian/.cvsignore
@@ -0,0 +1,17 @@
+*.debhelper
+docs
+*files
+*.substvars
+libicu-dev
+*libicu[0-9]*
+icu
+icu-locales
+icu-data
+icu-i18ndata
+tmp
+control
+postinst
+prerm
+icu.postinst
+icu.prerm
+icu-doc
diff --git a/debian/README.Debian.libicu-dev b/debian/README.Debian.libicu-dev
new file mode 100644
index 0000000..32a2fec
--- /dev/null
+++ b/debian/README.Debian.libicu-dev
@@ -0,0 +1,11 @@
+Copyright (C) 2000-2003, International Business Machines
+Corporation and others.  All Rights Reserved.
+
+libicu-dev for Debian
+---------------------
+
+The documentation in /usr/share/doc/libicu-dev/docs/ provides a high-level
+overview of ICU. Detailed API documentation is provided by the icu-docs
+package.
+
+ -- Yves Arrouye <yves@debian.org>, Wed, 11 Oct 2000 19:37:57 -0700
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 0000000..379ee4b
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,155 @@
+icu (2.6.1-1) experimental; urgency=low
+
+  * New upstream version.
+  * Ivo Timmermans:
+      * debian/rules Don't create arch-all packages in the binary-arch
+        target.  Closes: #184403
+
+ -- Ivo Timmermans <ivo@debian.org>  Thu,  6 Nov 2003 09:03:44 +0100
+
+icu (2.6-1) experimental; urgency=low
+
+  * New upstream version. Closes: #162975
+  * debian/control: New maintainers
+  * Daniel Glassey:
+      * debian/rules Change the optimisations to -O3 and -O to get it to build
+      * debian/rules get the latest config.{sub,guess} from /usr/share/misc
+        so add build-dep on autotools-dev
+      * debian/postinst gencnval is now in {prefix}/bin
+  * Ivo Timmermans:
+      * debian/control Tightened debhelper build dependency
+      * debian/control Update Standards-Version
+
+ -- Daniel Glassey <wdg@debian.org>  Wed,  3 Sep 2003 12:39:35 +0200
+
+icu (2.1-1.2) unstable; urgency=low
+
+  * NMU.
+  * Updated source/config.{sub,guess}.  Closes: #182697
+
+ -- Ivo Timmermans <ivo@debian.org>  Fri,  7 Mar 2003 20:58:23 +0100
+
+icu (2.1-1.1) unstable; urgency=low
+
+  * NMU.
+  * debian/control: Go through G++ ABI transition. Closes: #180124
+  * source/common/unicode/docmain.h: Fix \mainpage and \section tags,
+    so doxygen doesn't get confused any more. Closes: #178344
+  * debian/copyright: Added upstream URL. Closes: #165780
+  * 
+
+ -- Ivo Timmermans <ivo@debian.org>  Fri, 14 Feb 2003 15:21:56 +0100
+
+icu (2.1-1) unstable; urgency=low
+
+  * ICU 2.1 release.
+  * Changed the icu package description. Closes: 142886
+  * Use -O1 for CXXFLAGS for OS/390. Closes: 143021
+
+ -- Yves Arrouye <yves@debian.org>  Mon, 15 Apr 2002 14:03:12 -0700
+
+icu (2.0.2-1) unstable; urgency=low
+
+  * Minor release of ICU with fixes for threading and strTo/FromWCS
+
+ -- Yves Arrouye <yves@debian.org>  Tue,  2 Apr 2002 09:06:00 -0800
+
+icu (2.0-2.1pre20020318-1) unstable; urgency=low
+
+  * Use the library number in the development package too.
+  * ICU changed to version 2.1.
+
+ -- Yves Arrouye <yves@debian.org>  Tue, 19 Mar 2002 18:38:37 -0800
+
+icu (2.0-2.1pre20020303-1) unstable; urgency=low
+
+  * Fixed a crash in uconv when no argument is passed to -f or -t.
+  * Other upstream changes.
+  * Fresh upload with an up to date orig tar file so that future
+    diffs won't be 6 megabytes long!
+
+ -- Yves Arrouye <yves@debian.org>  Sun,  3 Mar 2002 15:31:13 -0800
+
+icu (2.0-2.1pre-1) unstable; urgency=low
+
+  * Prerelease of 2.1 with a working upgraded uconv(1).
+
+ -- Yves Arrouye <yves@debian.org>  Fri,  1 Mar 2002 21:51:47 -0800
+
+icu (2.0-3) unstable; urgency=low
+
+  * Renamed doc-base to icu-doc.doc-base. Closes: 127487
+
+ -- Yves Arrouye <yves@debian.org>  Fri, 18 Jan 2002 22:33:53 -0800
+
+icu (2.0-2) unstable; urgency=low
+
+  * Fixed a bug in uprv_uca_cloneTempTable().  Closes: 128484
+  * Update Debian bugs status.  Closes: 104642
+  * Use the official 2.0 tarball as the original tar.
+  * Added manual pages for every tool.
+
+ -- Yves Arrouye <yves@debian.org>  Wed, 16 Jan 2002 20:45:42 -0800
+
+icu (2.0-1) unstable; urgency=low
+
+  * Update to ICU version 2.0.
+
+ -- Yves Arrouye <yves@debian.org>  Sat, 10 Nov 2001 21:58:19 -0800
+
+icu (1.8.1-2) unstable; urgency=low
+
+  * Updated copyright file. Closes: 112488
+  * Updated icu-locales description. Closes: 75499
+
+ -- Yves Arrouye <yves@debian.org>  Sat, 10 Nov 2001 21:24:58 -0800
+
+icu (1.8.1-1.1) unstable; urgency=low
+
+  * NMU to resolve build failures on ia64 and (hopefully) hppa.
+  * config.{sub|guess} update
+  * source/tools/ctestfw/ctest.c: Add static declaration to global
+    variables local to that module to avoid @gprel relocation errors.
+    Closes: 104642
+
+ -- Yves Arrouye <yves@debian.org>  Sat, 10 Nov 2001 21:24:44 -0800
+
+icu (1.8.1-1) unstable; urgency=low
+
+  * Update to ICU version 1.8.1.
+
+ -- root <yves@debian.org>  Mon, 21 May 2001 15:27:36 -0700
+
+icu (1.7-1) unstable; urgency=low
+
+  * Update to ICU version 1.7.
+
+ -- Yves Arrouye <yves@debian.org>  Tue, 21 Nov 2000 22:54:52 -0800
+
+icu (1.6.0.1-20001113-2) unstable; urgency=low
+
+  * New snapshot with better ISO-2022.
+
+ -- Yves Arrouye <yves@debian.org>  Mon, 13 Nov 2000 21:05:00 -0800
+
+icu (1.6.0.1-20001027-1) unstable; urgency=low
+
+  * Move architecture-dependent files into /usr/lib, instead of
+    /usr/share.
+  * Move convrtrs.txt into /etc/icu, make it a conffile, and generate
+    /usr/lib/icu/1.6.0.1/cnvalias.dat from it at postinst time.
+  * Manage a /usr/lib/icu/current symbolic link across installations
+    of the libicuXX packages. The symlink will always point to the
+    highest numbered version of ICU.
+
+ -- Yves Arrouye <yves@debian.org>  Fri, 27 Oct 2000 15:40:12 -0700
+
+icu (1.6.0.1-20001017-1) unstable; urgency=low
+
+  * Initial Release.
+
+ -- Yves Arrouye <yves@debian.org>  Tue, 24 Oct 2000 16:14:12 -0700
+
+Local variables:
+mode: debian-changelog
+End:
diff --git a/debian/control b/debian/control
new file mode 100644
index 0000000..a183a62
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,90 @@
+Source: icu
+Section: libs
+Priority: optional
+Maintainer: Daniel Glassey <wdg@debian.org>
+Uploaders: Ivo Timmermans <ivo@debian.org>
+Standards-Version: 3.6.0
+Build-Depends: debhelper (>> 3.0), doxygen, autotools-dev
+
+Package: libicu30-dev
+Section: devel
+Architecture: any
+Depends: libicu${major} (= ${Source-Version}), libc6-dev
+Provides: libicu-dev
+Conflicts: libicu-dev
+Suggests: icu-doc
+Description: International Components for Unicode (development files)
+ ICU is a C++ and C library that provides robust and full-featured Unicode
+ and locale support. This package contains the development files for ICU.
+
+Package: icu-doc
+Section: doc
+Architecture: all
+Description: API documentation for ICU classes and functions
+ ICU is a C++ and C library that provides robust and full-featured Unicode
+ and locale support. This package contains HTML files documenting the ICU
+ APIs.
+ 
+Package: libicu30
+Section: libs
+Architecture: any
+Depends: ${shlibs:Depends}
+Recommends: icu
+Description: International Components for Unicode (libraries)
+ ICU is a C++ and C library that provides robust and full-featured Unicode
+ and locale support. This package contains the runtime libraries for
+ ICU. It does not contain any of the data files needed at runtime and
+ present in the `icu' and `icu-locales` packages.
+
+Package: icu
+Section: libs
+Architecture: any
+Depends: libicu${major} (>= ${Source-Version}), make
+Recommends: icu-locales
+Description: International Components for Unicode (non locale data)
+ ICU is a C++ and C library that provides robust and full-featured Unicode
+ and locale support. The library provides calendar support, conversions
+ for more than 230 character sets, language-sensitive collation, date
+ and time formatting, support for more than 140 locales, message catalogs
+ and resources, message formatting, normalization, number and currency
+ formatting, time zones support, transliteration, word, line and
+ sentence breaking, etc. 
+ .
+ This package contains the Unicode character database and derived
+ properties, along with converters and time zones data.
+ It also contains the tools needed to manipulate these data.
+
+Package: icu-locales
+Section: libs
+Architecture: any
+Depends: libicu${major} (>= ${Source-Version})
+Description: Locale data for ICU
+ The locale data are used by ICU to provide localization (l10n) and
+ internationalization (i18n) support to applications using the ICU library.
+ This package also contains break data for various languages, and
+ transliteration data. 
+
+Package: icu-data
+Priority: extra
+Section: libs
+Architecture: all
+Depends: icu
+Description: Data for ICU (source files)
+ These data describe the Unicode data (normative and informative), and
+ also all the table-based converters provided in the ICU distribution.
+ .
+ This package contains uncompiled source data. Precompiled data are in the
+ `libicu${major}' package.
+
+Package: icu-i18ndata
+Priority: extra
+Section: libs
+Architecture: all
+Depends: icu
+Description: Locale data for ICU (source files)
+ The locale data are used by ICU to provide localization (l10n) and
+ internationalization (i18n) support to ICU applications. This package
+ also contains break data for various languages, and transliteration data.
+ .
+ This package contains uncompiled source data. Precompiled data are in the
+ `icu-locales' package.
diff --git a/debian/copyright b/debian/copyright
new file mode 100644
index 0000000..eddd3b4
--- /dev/null
+++ b/debian/copyright
@@ -0,0 +1,35 @@
+ICU License - ICU 1.8.1 and later
+
+COPYRIGHT AND PERMISSION NOTICE
+
+Copyright (c) 1995-2001 International Business Machines Corporation and others
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, and/or sell copies of the Software, and to permit persons
+to whom the Software is furnished to do so, provided that the above
+copyright notice(s) and this permission notice appear in all copies of
+the Software and that both the above copyright notice(s) and this
+permission notice appear in supporting documentation.
+
+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
+OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale, use
+or other dealings in this Software without prior written authorization
+of the copyright holder.
+
+--------------------------------------------------------------------------------
+All trademarks and registered trademarks mentioned herein are the property of their respective owners.
+
diff --git a/debian/icu-doc.doc-base b/debian/icu-doc.doc-base
new file mode 100644
index 0000000..9810e67
--- /dev/null
+++ b/debian/icu-doc.doc-base
@@ -0,0 +1,13 @@
+Document: icu-doc
+Title: ICU API Documentation
+Author: IBM Corporation and Others
+Abstract: This manual describes the APIs of the
+  International Components for Unicode C/C++
+  library. It is a useful reference for the
+  ICU programmer.
+Section: Libs
+
+Format: HTML
+Index: /usr/share/doc/icu-doc/html/index.html
+Files: /usr/share/doc/icu-doc/html/*.html
+
diff --git a/debian/icu.conffiles.in b/debian/icu.conffiles.in
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/debian/icu.conffiles.in
diff --git a/debian/icu.postinst.in b/debian/icu.postinst.in
new file mode 100644
index 0000000..fedd331
--- /dev/null
+++ b/debian/icu.postinst.in
@@ -0,0 +1,71 @@
+#! /bin/sh
+# Copyright (c) 2000-2004 International Business Machines
+# Corporation and others. All Rights Reserved.
+# postinst script for foo
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+#
+# quoting from the policy:
+#     Any necessary prompting should almost always be confined to the
+#     post-installation script, and should be protected with a conditional
+#     so that unnecessary prompting doesn't happen if a package's
+#     installation fails and the `postinst' is called with `abort-upgrade',
+#     `abort-remove' or `abort-deconfigure'.
+
+case "$1" in
+    configure)
+	# Adjust the current ICU link in @libdir@/@PACKAGE@
+
+	prefix=@prefix@
+	exec_prefix=@exec_prefix@
+
+	if [ -d @libdir@/@PACKAGE@ ]
+	then
+	    icucurrent=`2>/dev/null ls -dp @libdir@/@PACKAGE@/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+	    cd @libdir@/@PACKAGE@
+	    rm -f current
+	    if test x"$icucurrent" != x
+	    then
+	        ln -s "$icucurrent" current
+	    fi
+
+	    # Set ICU_DATA for ease of testing files. It is not necessary to
+	    # export it as we are guaranteed that the binaries we invoke will
+	    # use the right directory. But we're not taking chances with the
+	    # future :)
+
+	    ICU_DATA=@libdir@/@PACKAGE@/@VERSION@
+	    export ICU_DATA
+
+	fi
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 0
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
diff --git a/debian/icu.prerm.in b/debian/icu.prerm.in
new file mode 100644
index 0000000..28d8c01
--- /dev/null
+++ b/debian/icu.prerm.in
@@ -0,0 +1,56 @@
+#! /bin/sh
+# Copyright (c) 2000-2003 International Business Machines
+# Corporation and others. All Rights Reserved.
+# prerm script for foo
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <prerm> `remove'
+#        * <old-prerm> `upgrade' <new-version>
+#        * <new-prerm> `failed-upgrade' <old-version>
+#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+#        * <deconfigured's-prerm> `deconfigure' `in-favour'
+#          <package-being-installed> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+
+case "$1" in
+    remove|upgrade|deconfigure)
+	# Adjust the current ICU link in @libdir@/@PACKAGE@
+
+	prefix=@prefix@
+	exec_prefix=@exec_prefix@
+
+	if [ -d @libdir@/@PACKAGE@ ]
+	then
+	    icucurrent=`2>/dev/null ls -dp @libdir@/@PACKAGE@/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+	    cd @libdir@/@PACKAGE@
+	    rm -f current
+	    if test x"$icucurrent" != x
+	    then
+	        ln -s "$icucurrent" current
+	    fi
+	fi
+
+#       install-info --quiet --remove /usr/info/foo.info.gz
+        ;;
+
+    failed-upgrade)
+        ;;
+    *)
+        echo "prerm called with unknown argument \`$1'" >&2
+        exit 0
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/debian/libicu.postinst b/debian/libicu.postinst
new file mode 100644
index 0000000..a262d90
--- /dev/null
+++ b/debian/libicu.postinst
@@ -0,0 +1,70 @@
+#! /bin/sh
+# Copyright (c) 2000-2003 International Business Machines
+# Corporation and others. All Rights Reserved.
+# postinst script for foo
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+#
+# quoting from the policy:
+#     Any necessary prompting should almost always be confined to the
+#     post-installation script, and should be protected with a conditional
+#     so that unnecessary prompting doesn't happen if a package's
+#     installation fails and the `postinst' is called with `abort-upgrade',
+#     `abort-remove' or `abort-deconfigure'.
+
+# Call ldconfig in a way that makes lintian happy.
+
+if [ "$1" = "configure" ]; then ldconfig; fi
+
+# And now do the rest of the configuration
+
+case "$1" in
+    configure)
+
+	# Adjust the current ICU link in /usr/lib/icu
+
+	if [ -d /usr/lib/icu ]
+	then
+
+	icucurrent=`2>/dev/null ls -dp /usr/lib/icu/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+	cd /usr/lib/icu
+	rm -f current
+	if test x"$icucurrent" != x
+	then
+	    ln -s "$icucurrent" current
+	    ln -sf current/Makefile.inc .
+	fi
+
+	fi
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 0
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/debian/libicu.prerm.in b/debian/libicu.prerm.in
new file mode 100644
index 0000000..a06ac25
--- /dev/null
+++ b/debian/libicu.prerm.in
@@ -0,0 +1,55 @@
+#! /bin/sh
+# Copyright (c) 2000-2003 International Business Machines
+# Corporation and others. All Rights Reserved.
+# prerm script for foo
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <prerm> `remove'
+#        * <old-prerm> `upgrade' <new-version>
+#        * <new-prerm> `failed-upgrade' <old-version>
+#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+#        * <deconfigured's-prerm> `deconfigure' `in-favour'
+#          <package-being-installed> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+
+case "$1" in
+    remove|upgrade|deconfigure)
+	# Adjust the current ICU link in @libdir@/@PACKAGE@
+
+	prefix=@prefix@
+	exec_prefix=@exec_prefix@
+
+	if [ -d @libdir@/@PACKAGE@ ]
+	then
+	    icucurrent=`2>/dev/null ls -dp @libdir@/@PACKAGE@/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+	    cd @libdir@/@PACKAGE@
+	    rm -f current
+	    if test x"$icucurrent" != x
+	    then
+	        ln -s "$icucurrent" current
+	    fi
+	fi
+
+#       install-info --quiet --remove /usr/info/foo.info.gz
+        ;;
+    failed-upgrade)
+        ;;
+    *)
+        echo "prerm called with unknown argument \`$1'" >&2
+        exit 0
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/debian/postinst.in b/debian/postinst.in
new file mode 100644
index 0000000..1e7a3f7
--- /dev/null
+++ b/debian/postinst.in
@@ -0,0 +1,63 @@
+#! /bin/sh
+# Copyright (c) 2000-2003 International Business Machines
+# Corporation and others. All Rights Reserved.
+# postinst script for foo
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <postinst> `configure' <most-recently-configured-version>
+#        * <old-postinst> `abort-upgrade' <new version>
+#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+#          <new-version>
+#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+#          <failed-install-package> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+#
+# quoting from the policy:
+#     Any necessary prompting should almost always be confined to the
+#     post-installation script, and should be protected with a conditional
+#     so that unnecessary prompting doesn't happen if a package's
+#     installation fails and the `postinst' is called with `abort-upgrade',
+#     `abort-remove' or `abort-deconfigure'.
+
+case "$1" in
+    configure)
+	# Adjust the current ICU link in @libdir@/@PACKAGE@
+
+	prefix=@prefix@
+	exec_prefix=@exec_prefix@
+
+	if [ -d @libdir@/@PACKAGE@ ]
+	then
+	    icucurrent=`2>/dev/null ls -dp @libdir@/@PACKAGE@/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+	    cd @libdir@/@PACKAGE@
+	    rm -f current
+	    if test x"$icucurrent" != x
+	    then
+	        ln -s "$icucurrent" current
+	    fi
+	fi
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 0
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/debian/prerm.in b/debian/prerm.in
new file mode 100644
index 0000000..a06ac25
--- /dev/null
+++ b/debian/prerm.in
@@ -0,0 +1,55 @@
+#! /bin/sh
+# Copyright (c) 2000-2003 International Business Machines
+# Corporation and others. All Rights Reserved.
+# prerm script for foo
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+#        * <prerm> `remove'
+#        * <old-prerm> `upgrade' <new-version>
+#        * <new-prerm> `failed-upgrade' <old-version>
+#        * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+#        * <deconfigured's-prerm> `deconfigure' `in-favour'
+#          <package-being-installed> <version> `removing'
+#          <conflicting-package> <version>
+# for details, see /usr/share/doc/packaging-manual/
+
+case "$1" in
+    remove|upgrade|deconfigure)
+	# Adjust the current ICU link in @libdir@/@PACKAGE@
+
+	prefix=@prefix@
+	exec_prefix=@exec_prefix@
+
+	if [ -d @libdir@/@PACKAGE@ ]
+	then
+	    icucurrent=`2>/dev/null ls -dp @libdir@/@PACKAGE@/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+	    cd @libdir@/@PACKAGE@
+	    rm -f current
+	    if test x"$icucurrent" != x
+	    then
+	        ln -s "$icucurrent" current
+	    fi
+	fi
+
+#       install-info --quiet --remove /usr/info/foo.info.gz
+        ;;
+    failed-upgrade)
+        ;;
+    *)
+        echo "prerm called with unknown argument \`$1'" >&2
+        exit 0
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 0000000..772b135
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,256 @@
+#!/usr/bin/make -f
+# Copyright (c) 2000-2004 International Business Machines
+# Corporation and others. All Rights Reserved.
+# ICU debian/rules that uses debhelper.
+
+# The Debian packages for ICU are created and maintained by
+# Yves Arrouye <yves@debian.org>. They are part of Debian GNU/Linux
+# since the Debian woody release.
+
+# Decide whether we want to automatically manage the repackaging of
+# the common data from individual files or not.
+ICU_AUTO_COMMON=NO
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# This is the debhelper compatability version to use.
+export DH_COMPAT=2
+#firstdir := $(shell sed -n 's/Package: \(.*\)/\1/p' debian/control | head -1)else
+
+# Where the source for ICU is, where to build
+srcdir = source
+builddir = build
+# How to get to $(srcdir) from $(builddir)
+builddir_relative_topdir = ..
+builddir_relative_srcdir = $(builddir_relative_topdir)/$(srcdir)
+
+# Getting the ICU version numbers, stolen from configure.in (that's okay, I
+# wrote the configure.in part anyway)
+
+version := $(shell sed -n -e 's/^[ 	]*\#[ 	]*define[ 	]*U_ICU_VERSION[ 	]*"\([^"]*\)".*/\1/p' $(srcdir)/common/unicode/uversion.h)
+libversion := $(shell echo $(version) | sed -e 's/\.//' -e 's/^\([^.]*\)$$/\1.0/')
+major := $(shell echo $(libversion) | sed 's/\..*//')
+
+# ICU installation directories, w/o the initial slash
+pkgdatadir = usr/share/icu
+icudatadir = $(pkgdatadir)/$(version)
+pkglibdir = usr/lib/icu
+iculibdir = $(pkglibdir)/$(version)
+datasrcdir = usr/share/icu/$(version)/data
+# This is where data needs to be moved
+ifeq ($(ICU_AUTO_COMMON),YES)
+icufildir = $(iculibdir)/files
+else
+icufildir = $(iculibdir)
+endif
+
+# Build flags
+
+CFLAGS = -O3 # -Wall
+ifeq ($(shell uname -m),s390)
+CXXFLAGS = -O1 # -Wall
+else
+CXXFLAGS = -O # -Wall
+endif
+
+INSTALL_PROGRAM = /usr/bin/install
+
+ifneq (,$(findstring debug,$(DEB_BUILD_OPTIONS)))
+CFLAGS += -g
+CXXFLAGS += -g
+endif
+ifneq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS)))
+INSTALL_PROGRAM += -s
+endif
+
+all: build
+
+configure: $(builddir)/configure-stamp
+$(builddir)/configure-stamp:
+	# Add here commands to configure the package.
+	test -d $(builddir) || mkdir $(builddir)
+	cd $(builddir); CFLAGS='$(CFLAGS)' CXXFLAGS='$(CXXFLAGS)' INSTALL_PROGRAM='$(INSTALL_PROGRAM)' $(SHELL) $(builddir_relative_srcdir)/configure --srcdir=$(builddir_relative_srcdir) --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --with-data-packaging=files --enable-shared --enable-static --disable-samples
+	touch $@
+
+build: $(builddir)/configure-stamp debian-files $(builddir)/build-stamp
+
+# Build some Debian files
+DEBIAN_FILES=icu.conffiles postinst prerm icu.postinst icu.prerm libicu$(major).postinst README.Debian.libicu$(major)-dev
+
+debian/%: debian/%.in
+	cd $(builddir) \
+	  && CONFIG_FILES=$(builddir_relative_topdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+debian/libicu$(major)%: debian/libicu%
+	cp $< $@
+debian/README.Debian.libicu$(major)%: debian/README.Debian.libicu%
+	cp $< $@
+
+debian-files: $(addprefix debian/,$(DEBIAN_FILES))
+
+$(builddir)/build-stamp:
+	dh_testdir
+
+	# Add here commands to compile the package.
+	$(MAKE) -C $(builddir)
+	$(MAKE) -C $(builddir) doc
+
+	touch $@
+
+clean: update-debian-files
+	dh_testdir
+	dh_testroot
+	-test -r /usr/share/misc/config.sub && \
+	   cp -f /usr/share/misc/config.sub $(srcdir)/config.sub
+	-test -r /usr/share/misc/config.guess && \
+	   cp -f /usr/share/misc/config.guess $(srcdir)/config.guess
+
+	 $(RM) $(builddir)/build-stamp $(builddir)/configure-stamp
+
+	# Add here commands to clean up after the build process.
+	-$(MAKE) -C $(builddir) distclean
+	#-$(RM) `find $(builddir)/samples $(builddir)/test -name Makefile -print`
+	-$(RM) `find $(builddir) -name Makefile -print`
+	dh_clean
+	$(RM) $(addprefix debian/,$(DEBIAN_FILES)) debian/control.new
+
+	#if test -d $(builddir) -a $(builddir) != $(srcdir); then rmdir `find $(builddir) -type d -print | sort -r`; fi
+	if test -d $(builddir) -a $(builddir) != $(srcdir); then $(RM) -r $(builddir); fi
+
+install: build
+	dh_testdir
+	dh_testroot
+	dh_clean -k
+	dh_installdirs
+
+	# Add here commands to install the package into debian/tmp
+	$(MAKE) -C $(builddir) install DESTDIR=`pwd`/debian/tmp
+	$(MAKE) -C $(builddir) install-doc DESTDIR=`pwd`/debian/tmp
+
+# Build architecture-independent files here.
+binary-indep: build install
+	#
+	# build icu-doc package by moving files
+	#
+	mv debian/tmp/usr/share/doc/icu debian/tmp/usr/share/doc/icu-doc
+	dh_movefiles -picu-doc \
+	    usr/share/doc/icu-doc
+	#
+	# build icu-i18ndata from the source data
+	#
+	for d in locales translit brkitr; do \
+	    test -d debian/icu-i18ndata/$(datasrcdir)/$$d || \
+	        mkdir -p debian/icu-i18ndata/$(datasrcdir)/$$d; \
+	    install -m 644 $(srcdir)/data/$$d/*.* \
+	        debian/icu-i18ndata/$(datasrcdir)/$$d; \
+	done
+	#
+	# build icu-data from the source data
+	#
+	for d in mappings unidata misc; do \
+	    test -d debian/icu-data/$(datasrcdir)/$$d || \
+	        mkdir -p debian/icu-data/$(datasrcdir)/$$d; \
+	    install -m 644 $(srcdir)/data/$$d/*.* \
+	        debian/icu-data/$(datasrcdir)/$$d; \
+	done
+
+# Build architecture-dependent files here.
+binary-arch: build install
+#	dh_testversion
+	dh_testdir
+	dh_testroot
+	#
+	# build libicu${major} package by moving files from icu-dev
+	#
+	$(RM) debian/tmp/usr/lib/libicuctestfw.*
+	dh_movefiles -plibicu$(major) \
+	    usr/lib/*.so.*
+	mkdir debian/libicu$(major)/usr/lib/icu
+	#
+	# massage data files
+	#
+#	$(RM) debian/tmp/$(iculibdir)/cnvalias.dat
+ifneq ($(iculibdir),$(icufildir))
+	test -d debian/tmp/$(icufildir) || mkdir debian/tmp/$(icufildir)
+	mv debian/tmp/$(iculibdir)/*.* debian/tmp/$(icufildir)
+	mv debian/tmp/$(icufildir)/*msg.dat debian/tmp/$(iculibdir)
+	mv debian/tmp/$(icufildir)/*.inc debian/tmp/$(iculibdir)
+endif
+	#
+	# build icu package by moving files from icu-dev
+	#
+	$(RM) debian/tmp/$(iculibdir)/../Makefile.inc debian/tmp/$(iculibdir)/../current
+ifneq ($(iculibdir),$(icufildir))
+	dh_movefiles -picu \
+	    $(iculibdir)/*msg.dat
+endif
+	# The license.html must be installed with ICU's source code.
+	# This includes the headers.
+	dh_movefiles -picu \
+	    etc \
+	    usr/bin \
+	    usr/sbin \
+	    $(icudatadir)/license.html \
+	    $(iculibdir)/*.inc \
+	    $(icufildir)/*.cnv \
+	    $(icufildir)/*.dat \
+	    usr/share/man
+	#
+	# build icu-locales package by moving files from icu-dev
+	#
+	dh_movefiles -picu-locales \
+	    $(icufildir)/*.res \
+	    $(icufildir)/*.brk
+	#
+	# move the rest of the development files
+	# in their package
+	#
+	dh_movefiles -a usr
+	#
+	# do a bit of cleanup
+	#
+	$(RM) -r debian/tmp/etc debian/tmp/usr/sbin \
+	    debian/tmp/usr/share/man
+	#
+	# continue to prepare packages
+	#
+#	dh_installdebconf
+	dh_installdocs -a
+	dh_installexamples -a $(srcdir)/samples/*
+	find debian/libicu$(major)-dev -name CVS -o -name .cvsignore | xargs $(RM) -r
+	dh_installmenu -a
+#	dh_installemacsen
+#	dh_installpam
+#	dh_installinit
+	dh_installcron -a
+	dh_installmanpages -picu
+	dh_installinfo -a
+	# dh_undocumented -picu
+	dh_installchangelogs -a
+	dh_link -a
+	dh_strip -a
+	dh_compress -a
+	dh_fixperms -a
+	# You may want to make some executables suid here.
+	dh_makeshlibs -a
+	dh_installdeb -a
+#	dh_perl
+	dh_shlibdeps -a -ldebian/libicu$(major)/usr/lib
+	dh_gencontrol -a -- -Vversion=$(version) -Vmajor=$(major)
+	dh_md5sums -a
+	dh_builddeb -a
+
+# Automatically update changelog and control
+update-debian-files:
+	if [ x"$$NO_AUTO_DCH" = x ]; \
+	then \
+	    cvers=`sed -n 's/^icu (\([^)]*\)).*/\1/p' debian/changelog | head -1`; if dpkg --compare-versions $$cvers lt $(version)-1; then \
+	        dch -v $(version)-1 "Update to ICU version $(version). (This comment is generated.)"; \
+	        sed 's/libicu[0-9][0-9]*/libicu$(major)/g' debian/control >debian/control.new && mv debian/control.new debian/control; \
+	    fi; \
+	fi
+
+binary: update-debian-files binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install debian-files update-changelog
+
diff --git a/license.html b/license.html
new file mode 100644
index 0000000..2a2c8e5
--- /dev/null
+++ b/license.html
@@ -0,0 +1,45 @@
+<html>
+
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=us-ascii"></meta>
+<title>ICU License - ICU 1.8.1 and later</title>
+</head>
+
+<body>
+<h1>ICU License - ICU 1.8.1 and later</h1>
+<pre>
+COPYRIGHT AND PERMISSION NOTICE
+
+Copyright (c) 1995-2003 International Business Machines Corporation and others
+All rights reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a
+copy of this software and associated documentation files (the
+"Software"), to deal in the Software without restriction, including
+without limitation the rights to use, copy, modify, merge, publish,
+distribute, and/or sell copies of the Software, and to permit persons
+to whom the Software is furnished to do so, provided that the above
+copyright notice(s) and this permission notice appear in all copies of
+the Software and that both the above copyright notice(s) and this
+permission notice appear in supporting documentation.
+
+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
+OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+Except as contained in this notice, the name of a copyright holder
+shall not be used in advertising or otherwise to promote the sale, use
+or other dealings in this Software without prior written authorization
+of the copyright holder.
+
+--------------------------------------------------------------------------------
+All trademarks and registered trademarks mentioned herein are the property of their respective owners.
+</pre>
+</body>
+</html>
diff --git a/packaging/PACKAGES b/packaging/PACKAGES
new file mode 100644
index 0000000..12b3523
--- /dev/null
+++ b/packaging/PACKAGES
@@ -0,0 +1,159 @@
+Copyright (C) 2000-2003, International Business Machines
+Corporation and others.  All Rights Reserved.
+ICU is packaged into a number of small, interdependent packages. This
+file describes what these packages are, what their name should be
+like, and what their contents are. It is useful as a reference and a
+guide when packaging ICU on a new system.
+
++ List of ICU packages.
+
+ICU is distributed as the following packages:
+
+- ICU libraries. This package contains the runtime libraries needed by
+applications that use ICU. All the other packages require this package
+to be installed.
+- ICU. This package contains the converters data, the timezones data,
+and all the ICU tools.
+- ICU locales. This package adds locales and break data.
+- ICU development. This package contains the files necessary to build
+applications that use ICU, i.e. header files, links to shared
+libraries used by the linker, static libraries, etc... It also
+contains sample applications and documentation.
+- ICU docs. This package contains further documentation for ICU,
+including a complete API reference.
+- ICU data. This package contains the source for the compiled data
+contained by the ICU package.
+- ICU international data. This package contains the source for the
+compiled data contained by the ICU locales package.
+
+In this file, we will refer to Autoconf variables as in $(bindir). In
+addition to these, we will use the following variables to denote
+ICU-specific directories or information:
+
+  VERSION       ICU's dotted version number, e.g. 1.6.0.1 as of this
+		writing.
+
+  ICUDATADIR	The directory where portable ICU data are. This is
+	        defined as $(datadir)/icu/$(VERSION).
+  ICULIBDIR	The directory where platform-specific ICU data
+		are. This is defined as $(libdir)/icu/$(VERSION).
+  ICUSYSCONFDIR	The directory where ICU configuration files are. This
+		is defined as $(sysconfdir)/icu.
+
+When referring to libraries, .so will be used to denote the extension
+of a shared library, and .a to denote the extension of a static
+library. These extensions will actually be different on some platforms.
+
++ Configuration and compilation of ICU
+
+ICU should be configured with the following options:
+
+  --with-data-packaging=files
+  --disable-rpath
+  --enable-shared
+  --enable-static
+  --without-samples
+
+in addition to platform-specific settings (like a specific mandir or
+sysconfdir). Note that the use of --disable-rpath assumes that the
+packaging is made for a standard location, or that the package
+installation/deinstallation will correctly manage the configuration
+of the system's dyanmic loader. This is the right way of doing things.
+
+The configure script invokation should also be done with
+
+  CFLAGS="-O2"
+
+set, as in:
+
+  $ CFLAGS="-O2" ./configure ...
+
+The files packaging mode is chosen because it offers the maximum
+flexibility. Packages can be split easily, and system administrators
+can add converters, aliases, and other resources with little
+effort. Ideally, the ICU build will be modified to allow for distributing a
+libicudata.so with all the converters and locales, but indexes and aliases
+as separate files. But for now, this is the easiest way to get started.
+
++ The ICU libraries package
+
+The ICU libraries package is typically named `libicuXX' where XX is
+the major number of ICU's libraries. This number is ICU's version
+number multiplied by 10 and rounded down to the nearest integer (it is
+also the value of the LIB_VERSION_MAJOR configure substitution
+variable). For example, for ICU 1.6.0.1, it is 16, so the package name
+is `libicu16'. The major version is part of the package name to allow
+for the simultaneous installation of different ICU releases.
+
+This package contains:
+
+- All the shared libraries, and their major number symbolic link, but
+not the .so symbolic link that is only used at link time (this one is
+part of the development package). These are $(libdir)/libicu*.so.* and
+$(libdir)/libustdio.so.* at the time of this writing.
+
++ The ICU package
+
+The ICU package is simply named `icu'.  It provides data used by the ICU
+libraries package and commands to create and manipulate that data.
+
+This package contains:
+
+- The Unicode data files (uprops.dat and unames.dat as of this writing).
+- The time zones data files (tz.dat).
+- All the binary data files for converters (.cnv files).
+- All the ICU commands.
+- The manual pages for ICU commands and file formats.
+
++ The ICU locales package
+
+The ICU locales package is named `icu-locales'. It provides data used by
+internationalization support in ICU.
+
+This package contains:
+
+- All the data for locales in ICU (.dat files).
+- All the break data for specific locales (.brk files).
+
++ The ICU development package
+
+The ICU developpment package is named `libicu-dev'. It provides all
+the files necessary to write applications that use ICU, along with
+examples and some documentation.
+
+This package contains:
+
+- The /usr/include/unicode directory which contains all the ICU
+headers.
+- The .so symbolic links used by the linker to link against the
+latest version of the libraries.
+- A sample Makefile fragment that can be included by applications
+using ICU, to faciliate their building, along with a platform-specific
+configuration file included by this fragment.
+- The sample applications from the ICU source tree, in an appropriate
+location for the system that the package is installed on (for example,
+on Debian, in /usr/share/doc/libicu-dev/examples).
+
+This package depends on the ICU libraries package with the exact same
+version, since it provides .so symbolic links to the latest libraries.
+
++ The ICU docs package
+
+The ICU docs package is named `libicu-doc'. It contains the files
+generated by doxygen when the `make doc' command is executed, in a
+location appropriate for the system that the package is installed on.
+
++ The ICU data package
+
+The ICU data package is named `icu-data'. It contains source files for
+the data found in the ICU package. These files are installed in
+$(ICUDATADIR).
+
++ The ICU international data package
+
+The ICU data package is named `icu-i18ndata'. It contains source files for
+the dat founf in the ICU locales package. These files are installed in
+$(ICUDATADIR).
+
+----
+Yves Arrouye <yves@realnames.com>
diff --git a/packaging/README b/packaging/README
new file mode 100644
index 0000000..1bfe85a
--- /dev/null
+++ b/packaging/README
@@ -0,0 +1,13 @@
+Copyright (C) 2000-2003, International Business Machines
+Corporation and others.  All Rights Reserved.
+
+This directory contains information, input files and scripts for
+packaging ICU using specific packaging tools. We assume that the
+packager is familiar with the tools and procedures needed to build a
+package for a given packaging method (for example, how to use
+dpkg-buildpackage(1) on Debian GNU/Linux, or rpm(8) on distributions that
+use RPM packages).
+
+Please read the file PACKAGES if you are interested in packaging ICU
+yourself. It describes what the different packages should be, and what
+their contents are.
diff --git a/packaging/debian/README b/packaging/debian/README
new file mode 100644
index 0000000..0388625
--- /dev/null
+++ b/packaging/debian/README
@@ -0,0 +1,5 @@
+// Copyright (c) 2000-2003 International Business Machines
+// Corporation and others. All Rights Reserved.
+The Debian packaging is in the debian directory at the toplevel of ICU's
+distribution.
+
diff --git a/packaging/rpm/icu.spec b/packaging/rpm/icu.spec
new file mode 100644
index 0000000..0aa9442
--- /dev/null
+++ b/packaging/rpm/icu.spec
@@ -0,0 +1,233 @@
+#   Copyright (C) 2000-2004, International Business Machines
+#   Corporation and others.  All Rights Reserved.
+#
+# RPM specification file for ICU.
+#
+# Neal Probert <nprobert@walid.com> is the current maintainer.
+# Yves Arrouye <yves@realnames.com> is the original author.
+
+# This file can be freely redistributed under the same license as ICU.
+
+Name: icu
+Version: 3.0
+Release: 1
+Requires: libicu30 >= %{version}
+Summary: International Components for Unicode
+Packager: Ian Holsman (CNET Networks) <ianh@cnet.com>
+Copyright: X License
+Group: System Environment/Libraries
+Source: icu-%{version}.tgz
+BuildRoot: /var/tmp/%{name}-%{version}
+%description
+ICU is a set of C and C++ libraries that provides robust and full-featured
+Unicode and locale support. The library provides calendar support, conversions
+for many character sets, language sensitive collation, date
+and time formatting, support for many locales, message catalogs
+and resources, message formatting, normalization, number and currency
+formatting, time zones support, transliteration, word, line and
+sentence breaking, etc.
+
+This package contains the Unicode character database and derived
+properties, along with converters and time zones data.
+
+This package contains the runtime libraries for ICU. It does
+not contain any of the data files needed at runtime and present in the
+`icu' and `icu-locales` packages.
+
+%package -n libicu30
+Summary: International Components for Unicode (libraries)
+Group: Development/Libraries
+%description -n libicu30
+ICU is a set of C and C++ libraries that provides robust and full-featured
+Unicode support. This package contains the runtime libraries for ICU. It does
+not contain any of the data files needed at runtime and present in the
+`icu' and `icu-locales` packages.
+
+%package -n libicu-devel
+Summary: International Components for Unicode (development files)
+Group: Development/Libraries
+Requires: libicu30 = %{version}
+%description -n libicu-devel
+ICU is a set of C and C++ libraries that provides robust and full-featured
+Unicode support. This package contains the development files for ICU.
+
+%package locales
+Summary: Locale data for ICU
+Group: System Environment/Libraries
+Requires: libicu30 >= %{version}
+%description locales
+The locale data are used by ICU to provide localization (l10n), 
+internationalization (i18n) and timezone support to ICU applications.
+This package also contains break data for various languages,
+and transliteration data.
+
+%post
+# Adjust the current ICU link in /usr/lib/icu
+
+icucurrent=`2>/dev/null ls -dp /usr/lib/icu/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+cd /usr/lib/icu
+rm -f /usr/lib/icu/current
+if test x"$icucurrent" != x
+then
+    ln -s "$icucurrent" current
+fi
+
+#ICU_DATA=/usr/share/icu/%{version}
+#export ICU_DATA
+
+%preun
+# Adjust the current ICU link in /usr/lib/icu
+
+icucurrent=`2>/dev/null ls -dp /usr/lib/icu/* | sed -n -e '/\/%{version}\//d' -e 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+cd /usr/lib/icu
+rm -f /usr/lib/icu/current
+if test x"$icucurrent" != x
+then
+    ln -s "$icucurrent" current
+fi
+
+%post -n libicu30
+ldconfig
+
+# Adjust the current ICU link in /usr/lib/icu
+
+icucurrent=`2>/dev/null ls -dp /usr/lib/icu/* | sed -n 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+cd /usr/lib/icu
+rm -f /usr/lib/icu/current
+if test x"$icucurrent" != x
+then
+    ln -s "$icucurrent" current
+fi
+
+%preun -n libicu30
+# Adjust the current ICU link in /usr/lib/icu
+
+icucurrent=`2>/dev/null ls -dp /usr/lib/icu/* | sed -n -e '/\/%{version}\//d' -e 's,.*/\([^/]*\)/$,\1,p'| sort -rn | head -1`
+cd /usr/lib/icu
+rm -f /usr/lib/icu/current
+if test x"$icucurrent" != x
+then
+    ln -s "$icucurrent" current
+fi
+
+%prep
+%setup -q -n icu
+
+%build
+cd source
+chmod a+x ./configure
+CFLAGS="-O3" CXXFLAGS="-O" ./configure --prefix=/usr --sysconfdir=/etc --with-data-packaging=files --enable-shared --enable-static --disable-samples
+echo 'CPPFLAGS += -DICU_DATA_DIR=\"/usr/share/icu/%{version}\"' >> icudefs.mk
+make RPM_OPT_FLAGS="$RPM_OPT_FLAGS"
+
+%install
+rm -rf $RPM_BUILD_ROOT
+cd source
+make install DESTDIR=$RPM_BUILD_ROOT
+
+%files
+%defattr(-,root,root)
+%doc readme.html
+%doc license.html
+/usr/share/icu/%{version}/license.html
+/usr/share/icu/%{version}/icudt30l/*.cnv
+/usr/share/icu/%{version}/icudt30l/*.icu
+/usr/share/icu/%{version}/icudt30l/*.spp
+
+/usr/bin/derb
+/usr/bin/genbrk
+/usr/bin/gencnval
+/usr/bin/genrb
+/usr/bin/icu-config
+/usr/bin/makeconv
+/usr/bin/pkgdata
+/usr/bin/uconv
+
+/usr/sbin/decmn
+/usr/sbin/genccode
+/usr/sbin/gencmn
+/usr/sbin/gennames
+/usr/sbin/gennorm
+/usr/sbin/genpname
+/usr/sbin/genprops
+/usr/sbin/gensprep
+/usr/sbin/genuca
+/usr/sbin/icuswap
+/usr/share/icu/%{version}/mkinstalldirs
+
+/usr/man/man1/gencnval.1.*
+/usr/man/man1/derb.1.*
+/usr/man/man1/genrb.1.*
+/usr/man/man1/icu-config.1.*
+/usr/man/man1/makeconv.1.*
+/usr/man/man1/pkgdata.1.*
+/usr/man/man1/uconv.1.*
+/usr/man/man8/decmn.8.*
+/usr/man/man8/genccode.8.*
+/usr/man/man8/gencmn.8.*
+/usr/man/man8/gennames.8.*
+/usr/man/man8/gennorm.8.*
+/usr/man/man8/genprops.8.*
+/usr/man/man8/genuca.8.*
+/usr/man/man8/gensprep.8.*
+
+%files -n icu-locales
+/usr/share/icu/%{version}/icudt30l/*.brk
+/usr/share/icu/%{version}/icudt30l/*.res
+/usr/share/icu/%{version}/icudt30l/coll/*.res
+
+%files -n libicu30
+%doc license.html
+/usr/lib/libicui18n.so.30
+/usr/lib/libicui18n.so.30.0
+/usr/lib/libicutu.so.30
+/usr/lib/libicutu.so.30.0
+/usr/lib/libicuuc.so.30
+/usr/lib/libicuuc.so.30.0
+/usr/lib/libicudata.so.30
+/usr/lib/libicudata.so.30.0
+/usr/lib/libicuio.so.30
+/usr/lib/libicuio.so.30.0
+/usr/lib/libiculx.so.30
+/usr/lib/libiculx.so.30.0
+/usr/lib/libicule.so.30
+/usr/lib/libicule.so.30.0
+
+%files -n libicu-devel
+%doc readme.html
+%doc license.html
+/usr/lib/libicui18n.so
+/usr/lib/libsicui18n.a
+/usr/lib/libicuuc.so
+/usr/lib/libsicuuc.a
+/usr/lib/libicutu.so
+/usr/lib/libsicutu.a
+/usr/lib/libicuio.so
+/usr/lib/libsicuio.a
+/usr/lib/libicudata.so
+/usr/lib/libsicudata.a
+/usr/lib/libicule.so
+/usr/lib/libsicule.a
+/usr/lib/libiculx.so
+/usr/lib/libsiculx.a
+/usr/include/unicode/*.h
+/usr/include/layout/*.h
+/usr/lib/icu/%{version}/Makefile.inc
+/usr/lib/icu/Makefile.inc
+/usr/share/icu/%{version}/config
+/usr/share/doc/icu-%{version}/*
+
+%changelog
+* Mon Jun 07 2004 Alexei Dets <adets@idsk.com>
+- update to 3.0
+* Tue Aug 16 2003 Steven Loomis <srl@jtcsv.com>
+- update to 2.6.1 - include license
+* Thu Jun 05 2003 Steven Loomis <srl@jtcsv.com>
+- Update to 2.6
+* Fri Dec 27 2002 Steven Loomis <srl@jtcsv.com>
+- Update to 2.4 spec
+* Fri Sep 27 2002 Steven Loomis <srl@jtcsv.com>
+- minor updates to 2.2 spec. Rpath is off by default, don't pass it as an option.
+* Mon Sep 16 2002 Ian Holsman <ian@holsman.net> 
+- update to icu 2.2
+
diff --git a/readme.html b/readme.html
new file mode 100644
index 0000000..179c941
--- /dev/null
+++ b/readme.html
@@ -0,0 +1,1871 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+
+<html lang="en-US">
+  <head>
+    <title>ReadMe for ICU</title>
+    <meta name="COPYRIGHT" content=
+    "Copyright (c) 1997-2004 IBM Corporation and others. All Rights Reserved.">
+    <meta name="KEYWORDS" content=
+    "ICU; International Components for Unicode; what's new; readme; read me; introduction; downloads; downloading; building; installation;">
+    <meta name="DESCRIPTION" content=
+    "The introduction to the International Components for Unicode with instructions on building, installation, usage and other information about ICU.">
+    <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
+<style type="text/css">
+    h1 {border-width: 2px; border-style: solid; text-align: center; width: 100%; font-size: 200%; font-weight: bold}
+    h2 {margin-top: 3em; text-decoration: underline; page-break-before: always}
+    h2.TOC {page-break-before: auto}
+    h3 {margin-top: 2em; text-decoration: underline}
+    h4 {text-decoration: underline}
+    h5 {text-decoration: underline}
+    caption {font-weight: bold; text-align: left}
+    div.indent {margin-left: 2em}
+    ul.TOC {list-style-type: none}
+    samp {margin-left: 1em; border-style: groove; padding: 1em; display: block; background-color: #EEEEEE}
+</style>
+  </head>
+
+  <body>
+    <h1>International Components for Unicode<br>
+     <abbr title="International Components for Unicode">ICU</abbr> 3.3
+    ReadMe</h1>
+
+    <p>Version: 2005-Apr-01<br>
+     Copyright &copy; 1997-2005 International Business Machines Corporation and
+    others. All Rights Reserved.</p>
+    <!-- Remember that there is a copyright at the end too -->
+    <hr>
+
+    <h2 class="TOC">Table of Contents</h2>
+
+    <ul class="TOC">
+      <li><a href="#Introduction">Introduction</a></li>
+
+      <li><a href="#GettingStarted">Getting Started</a></li>
+
+      <li><a href="#News">What Is New In This release?</a></li>
+
+      <li><a href="#Download">How To Download the Source Code</a></li>
+
+      <li><a href="#SourceCode">ICU Source Code Organization</a></li>
+
+      <li>
+        <a href="#HowToBuild">How To Build And Install ICU</a> 
+
+        <ul class="TOC">
+          <li><a href="#HowToBuildSupported">Supported Platforms</a></li>
+
+          <li><a href="#HowToBuildWindows">Windows</a></li>
+
+          <li><a href="#HowToBuildCygwin">Cygwin</a></li>
+
+          <li><a href="#HowToBuildUNIX">UNIX</a></li>
+
+          <li><a href="#HowToBuildZOS">z/OS (os/390)</a></li>
+
+          <li><a href="#HowToBuildOS400">i5/OS (OS/400 iSeries)</a></li>
+        </ul>
+      </li>
+
+      <li><a href="#HowToPackage">How To Package ICU</a></li>
+
+      <li>
+        <a href="#ImportantNotes">Important Notes About Using ICU</a> 
+
+        <ul class="TOC">
+          <li><a href="#ImportantNotesCPlusPlus">Using ICU in a Multithreaded
+          Environment</a></li>
+
+          <li><a href="#ImportantNotesWindows">Windows Platform</a></li>
+
+          <li><a href="#ImportantNotesUNIX">UNIX Type Platforms</a></li>
+        </ul>
+      </li>
+
+      <li>
+        <a href="#PlatformDependencies">Platform Dependencies</a> 
+
+        <ul class="TOC">
+          <li><a href="#PlatformDependenciesNew">Porting To A New
+          Platform</a></li>
+
+          <li><a href="#PlatformDependenciesImpl">Platform Dependent
+          Implementations</a></li>
+
+          <li><a href="#PlatformDependenciesBuildOrder">Build Order Without
+          Using ICU's Makefiles</a></li>
+        </ul>
+      </li>
+    </ul>
+    <hr>
+
+    <h2><a name="Introduction" href="#Introduction" id=
+    "Introduction">Introduction</a></h2>
+
+    <p>Today's software market is a global one in which it is desirable to
+    develop and maintain one application (single source/single binary) that
+    supports a wide variety of languages. The International Components for
+    Unicode (ICU) libraries provide robust and full-featured Unicode services
+    on a wide variety of platforms to help this design goal. The ICU libraries
+    provide support for:</p>
+
+    <ul>
+      <li>The latest version of the Unicode standard</li>
+
+      <li>Character set conversions with support for over 200 codepages</li>
+
+      <li>Locale data for more than 230 locales</li>
+
+      <li>Language sensitive text collation (sorting) and searching based on
+      the Unicode Collation Algorithm (=ISO 14651)</li>
+
+      <li>Regular expression matching and Unicode sets</li>
+
+      <li>Transformations for normalization, upper/lowercase, script
+      transliterations (50+ pairs)</li>
+
+      <li>Resource bundles for storing and accessing localized information</li>
+
+      <li>Date/Number/Message formatting and parsing of culture specific
+      input/output formats</li>
+
+      <li>Calendar specific date and time manipulation</li>
+
+      <li>Complex text layout for Arabic, Hebrew, Indic and Thai</li>
+
+      <li>Text boundary analysis for finding characters, word and sentence
+      boundaries</li>
+    </ul>
+
+    <p>ICU has a sister project ICU4J that extends the internationalization
+    capabilities of Java to a level similar to ICU. The ICU C/C++ project is
+    also called ICU4C when a distinction is necessary.</p>
+
+    <h2><a name="GettingStarted" href="#GettingStarted" id=
+    "GettingStarted">Getting started</a></h2>
+
+    <p>This document describes how to build and install ICU on your machine.
+    For other information about ICU please see the following table of
+    links.<br>
+     The ICU homepage also links to related information about writing
+    internationalized software.</p>
+
+    <table border="1" cellpadding="3" width="100%" summary=
+    "These are some useful links regarding ICU and internationalization in general.">
+      <caption>
+        Here are some useful links regarding ICU and internationalization in
+        general.
+      </caption>
+
+      <tr>
+        <td>ICU, ICU4C, ICU4J &amp; ICU4JNI Official Homepage</td>
+
+        <td><a href=
+        "http://www.ibm.com/software/globalization/icu/index.jsp">http://www.ibm.com/software/globalization/icu/index.jsp</a></td>
+      </tr>
+
+      <tr>
+        <td>ICU, ICU4C, ICU4J &amp; ICU4JNI Unofficial Homepage</td>
+
+        <td><a href=
+        "http://icu.sourceforge.net/">http://icu.sourceforge.net/</a></td>
+      </tr>
+
+      <tr>
+        <td>FAQ - Frequently Asked Questions about ICU</td>
+
+        <td><a href=
+        "http://icu.sourceforge.net/userguide/icufaq.html">http://icu.sourceforge.net/userguide/icufaq.html</a></td>
+      </tr>
+
+      <tr>
+        <td>ICU User's Guide</td>
+
+        <td><a href=
+        "http://icu.sourceforge.net/userguide/">http://icu.sourceforge.net/userguide/</a></td>
+      </tr>
+
+      <tr>
+        <td>Download ICU Releases</td>
+
+        <td><a href=
+        "http://www.ibm.com/software/globalization/icu/downloads.jsp">http://www.ibm.com/software/globalization/icu/downloads.jsp</a></td>
+      </tr>
+
+      <tr>
+        <td>API Documentation Online</td>
+
+        <td><a href=
+        "http://icu.sourceforge.net/apiref/index.html">http://icu.sourceforge.net/apiref/index.html</a></td>
+      </tr>
+
+      <tr>
+        <td>Online ICU Demos</td>
+
+        <td><a href=
+        "http://www.ibm.com/software/globalization/icu/chartsdemostools.jsp">http://www.ibm.com/software/globalization/icu/chartsdemostools.jsp</a></td>
+      </tr>
+
+      <tr>
+        <td>Contacts and Bug Reports/Feature Requests</td>
+
+        <td><a href=
+        "http://icu.sourceforge.net/contacts.html">http://icu.sourceforge.net/contacts.html</a></td>
+      </tr>
+    </table>
+
+    <p><strong>Important:</strong> Please make sure you understand the <a href=
+    "license.html">Copyright and License Information</a>.</p>
+
+    <h2><a name="News" href="#News" id="News">What is new in this
+    release?</a></h2>
+
+    <p>The following list concentrates on <em>changes that affect existing
+    applications migrating from previous ICU releases</em>. For more news about
+    this release, see the <a href=
+    "http://www.ibm.com/software/globalization/icu/downloads.jsp">ICU 3.2 download
+    page</a>.</p>
+
+    <h3><a name="News_putil_h" id="News_putil_h">Changes to putil.h and
+    utypes.h</a></h3>
+
+    <p>Starting in ICU 3.2, the unicode/utypes.h and unicode/putil.h headers
+    are no longer circularly dependent on each other. This means that if you
+    use any of the functions from unicode/putil.h and only included
+    unicode/utypes.h, you will now have to include unicode/putil.h too. No
+    stable API functions have been removed from these headers, but some
+    internal function declarations (marked with @internal) have been moved to
+    internal headers.</p>
+
+    <p>This change was announced on the icu mailing list, and it was done to
+    fix some header dependency issues that appeared while trying to make some
+    changes to the utf.h header macros.</p>
+
+    <h2><a name="Download" href="#Download" id="Download">How To Download the
+    Source Code</a></h2>
+
+    <p>There are two ways to download ICU releases:</p>
+
+    <ul>
+      <li><strong>Official Release Snapshot:</strong><br>
+       If you want to use ICU (as opposed to developing it), you should
+      download an official packaged version of the ICU source code. These
+      versions are tested more thoroughly than day-to-day development builds of
+      the system, and they are packaged in zip and tar files for convenient
+      download. These packaged files can be found at <a href=
+      "http://www.ibm.com/software/globalization/icu/downloads.jsp">http://www.ibm.com/software/globalization/icu/downloads.jsp</a>.<br>
+
+       The packaged snapshots are named <strong>icu-nnnn.zip</strong> or
+      <strong>icu-nnnn.tgz</strong>, where nnnn is the version number. The .zip
+      file is used for Windows platforms, while the .tgz file is preferred on
+      most other platforms.<br>
+       Please unzip this file. It will reconstruct the source directory, which
+      includes anonymous CVS control directories (see below).</li>
+
+      <li><strong>CVS Source Repository:</strong><br>
+       If you are interested in developing features, patches, or bug fixes for
+      ICU, you should probably be working with the latest version of the ICU
+      source code. You will need to check the code out of our CVS repository to
+      ensure that you have the most recent version of all of the files. See our
+      <a href=
+      "http://www.ibm.com/software/globalization/icu/repository.jsp">CVS
+      page</a> for details.</li>
+    </ul>
+
+    <h2><a name="SourceCode" href="#SourceCode" id="SourceCode">ICU Source Code
+    Organization</a></h2>
+
+    <p>In the descriptions below, <strong><i>&lt;ICU&gt;</i></strong> is the
+    full path name of the ICU directory (the top level directory from the
+    distribution archives) in your file system. You can also view the <a href=
+    "http://icu.sourceforge.net/userguide/design.html">ICU Architectural
+    Design</a> section of the User's Guide to see which libraries you need for
+    your software product. You need at least the data (<code>[lib]icudt</code>)
+    and the common (<code>[lib]icuuc</code>) libraries in order to use ICU.</p>
+
+    <table border="1" cellpadding="0" width="100%" summary=
+    "The following files describe the code drop.">
+      <caption>
+        The following files describe the code drop.
+      </caption>
+
+      <tr>
+        <th scope="col">File</th>
+
+        <th scope="col">Description</th>
+      </tr>
+
+      <tr>
+        <td>readme.html</td>
+
+        <td>Describes the International Components for Unicode (this file)</td>
+      </tr>
+
+      <tr>
+        <td>license.html</td>
+
+        <td>Contains the text of the ICU license</td>
+      </tr>
+    </table>
+
+    <p><br>
+    </p>
+
+    <table border="1" cellpadding="0" width="100%" summary=
+    "The following directories contain source code and data files.">
+      <caption>
+        The following directories contain source code and data files.
+      </caption>
+
+      <tr>
+        <th scope="col">Directory</th>
+
+        <th scope="col">Description</th>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/<b>common</b>/</td>
+
+        <td>The core Unicode and support functionality, such as resource
+        bundles, character properties, locales, codepage conversion,
+        normalization, Unicode properties, Locale, and UnicodeString.</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/<b>i18n</b>/</td>
+
+        <td>Modules in i18n are generally the more data-driven, that is to say
+        resource bundle driven, components. These deal with higher-level
+        internationalization issues such as formatting, collation, text break
+        analysis, and transliteration.</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/<b>data</b>/</td>
+
+        <td>
+          <p>This directory contains the source data in text format, which is
+          compiled into binary form during the ICU build process. It contains
+          several subdirectories, in which the data files are grouped by
+          function. Note that the build process must be run again after any
+          changes are made to this directory.</p>
+
+          <ul>
+            <li><b>brkitr/</b> Data files for character, word, sentence, title
+            casing and line boundary analysis.</li>
+
+            <li><b>locales/</b> These .txt files contain ICU language and
+            culture-specific localization data. Two special bundles are
+            <b>root</b>, which is the fallback data and parent of other
+            bundles, and <b>index</b>, which contains a list of installed
+            bundles. The makefile <b>resfiles.mk</b> contains the list of
+            resource bundle files.</li>
+
+            <li><b>mappings/</b> Here are the code page converter tables. These
+            .ucm files contain mappings to and from Unicode. These are compiled
+            into .cnv files. <b>convrtrs.txt</b> is the alias mapping table
+            from various converter name formats to ICU internal format and vice
+            versa. It produces cnvalias.icu. The makefiles <b>ucmfiles.mk,
+            ucmcore.mk,</b> and <b>ucmebcdic.mk</b> contain the list of
+            converters to be built.</li>
+
+            <li><b>translit/</b> This directory contains transliterator rules
+            as resource bundles, a makefile <b>trnsfiles.mk</b> containing the
+            list of installed system translitaration files, and as well the
+            special bundle <b>translit_index</b> which lists the system
+            transliterator aliases.</li>
+
+            <li><b>unidata/</b> This directory contains the Unicode data files.
+            Please see <a href=
+            "http://www.unicode.org/">http://www.unicode.org/</a> for more
+            information.</li>
+
+            <li><b>misc/</b> The misc directory contains other data files which
+            did not fit into the above categories. Currently it only contains
+            time zone information, and a name preperation file for <a href=
+            "http://www.ietf.org/rfc/rfc3490.txt">IDNA</a>.</li>
+
+            <li><b>out/</b> This directory contains the assembled memory mapped
+            files.</li>
+
+            <li><b>out/build/</b> This directory contains intermediate
+            (compiled) files, such as .cnv, .res, etc.</li>
+          </ul>
+
+          <p>If you are creating a special ICU build, you can set the ICU_DATA
+          environment variable to the out/ or the out/build/ directories, but
+          this is generally discouraged because most people set it incorrectly.
+          You can view the <a href=
+          "http://icu.sourceforge.net/userguide/icudata.html">ICU Data
+          Management</a> section of the ICU User's Guide for details.</p>
+        </td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/test/<b>intltest</b>/</td>
+
+        <td>A test suite including all C++ APIs. For information about running
+        the test suite, see the users' guide.</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/test/<b>cintltst</b>/</td>
+
+        <td>A test suite written in C, including all C APIs. For information
+        about running the test suite, see the users' guide.</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/test/<b>testdata</b>/</td>
+
+        <td>Source text files for data, which are read by the tests. It
+        contains the subdirectories <b>out/build/</b> which is used for
+        intermediate files, and <b>out/</b> which contains
+        <b>testdata.dat.</b></td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/<b>tools</b>/</td>
+
+        <td>Tools for generating the data files. Data files are generated by
+        invoking <i>&lt;ICU&gt;</i>/source/data/build/makedata.bat on Win32 or
+        <i>&lt;ICU&gt;</i>/source/make on UNIX.</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/<b>samples</b>/</td>
+
+        <td>Various sample programs that use ICU</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/<b>extra</b>/</td>
+
+        <td>Non-supported API additions. Currently, it contains the 'ustdio'
+        file i/o library</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/<b>layout</b>/</td>
+
+        <td>Contains the ICU layout engine (not a rasterizer).</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/<b>packaging</b>/<br>
+         <i>&lt;ICU&gt;</i>/<b>debian</b>/</td>
+
+        <td>These directories contain scripts and tools for packaging the final
+        ICU build for various release platforms.</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/<b>config</b>/</td>
+
+        <td>Contains helper makefiles for platform specific build commands.
+        Used by 'configure'.</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/source/<b>allinone</b>/</td>
+
+        <td>Contains top-level ICU workspace and project files, for instance to
+        build all of ICU under one MSVC project.</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/<b>include</b>/</td>
+
+        <td>Contains the headers needed for developing software that uses ICU
+        on Windows.</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/<b>lib</b>/</td>
+
+        <td>Contains the import libraries for linking ICU into your Windows
+        application.</td>
+      </tr>
+
+      <tr>
+        <td><i>&lt;ICU&gt;</i>/<b>bin</b>/</td>
+
+        <td>Contains the libraries and executables for using ICU on
+        Windows.</td>
+      </tr>
+    </table>
+    <!-- end of ICU structure ==================================== -->
+
+    <h2><a name="HowToBuild" href="#HowToBuild" id="HowToBuild">How To Build
+    And Install ICU</a></h2>
+
+    <h3><a name="HowToBuildSupported" href="#HowToBuildSupported" id=
+    "HowToBuildSupported">Supported Platforms</a></h3>
+
+    <table border="1" cellpadding="3" summary=
+    "ICU can be built on many platforms.">
+      <caption>
+        Here is a status of functionality of ICU on several different
+        platforms.
+      </caption>
+
+      <tr>
+        <th scope="col">Operating system</th>
+
+        <th scope="col">Compiler</th>
+
+        <th scope="col">Testing frequency</th>
+      </tr>
+
+      <tr>
+        <td>Windows 2000 with Cygwin</td>
+
+        <td>Microsoft Visual C++ 6.0</td>
+
+        <td>Reference platform</td>
+      </tr>
+
+      <tr>
+        <td>Windows XP</td>
+
+        <td>Microsoft Visual C++ .NET 2003 (7.1)</td>
+
+        <td>Reference platform</td>
+      </tr>
+
+      <tr>
+        <td>Red Hat Linux 9</td>
+
+        <td>gcc 3.2.2</td>
+
+        <td>Reference platform</td>
+      </tr>
+
+      <tr>
+        <td>AIX 5.2</td>
+
+        <td>Visual Age C++ 6.0</td>
+
+        <td>Reference platform</td>
+      </tr>
+
+      <tr>
+        <td>Solaris 7 (SunOS 5.7)</td>
+
+        <td>Workshop Pro (Forte) CC 6.0</td>
+
+        <td>Reference platform</td>
+      </tr>
+
+      <tr>
+        <td>HP-UX 11.11</td>
+
+        <td>aCC A.03.50<br>
+         cc B.11.11.08</td>
+
+        <td>Reference platform</td>
+      </tr>
+
+      <tr>
+        <td>Windows XP with Cygwin</td>
+
+        <td>Microsoft Visual C++ .NET 2002 (7.0)</td>
+
+        <td>Regularly tested</td>
+      </tr>
+
+      <tr>
+        <td>Windows 98/2000/XP</td>
+
+        <td>Microsoft Visual C++ 6.0</td>
+
+        <td>Regularly tested</td>
+      </tr>
+
+      <tr>
+        <td>Red Hat Linux 7.2</td>
+
+        <td>gcc 2.96</td>
+
+        <td>Regularly tested</td>
+      </tr>
+
+      <tr>
+        <td>Red Hat Linux 8.0</td>
+
+        <td>gcc 3.2</td>
+
+        <td>Regularly tested</td>
+      </tr>
+
+      <tr>
+        <td>Mac OS X (10.2)</td>
+
+        <td>gcc 3.1<br>
+         (Developer Tools, July 2002)</td>
+
+        <td>Regularly tested</td>
+      </tr>
+
+      <tr>
+        <td>Solaris 8 (SunOS 5.8)</td>
+
+        <td>Workshop Pro CC 4.2<br>
+         (use 'runConfigureICU SOLARISCC/W4.2')</td>
+
+        <td>Regularly tested</td>
+      </tr>
+
+      <tr>
+        <td>Solaris 2.6 (SunOS 5.6)</td>
+
+        <td>gcc 2.95.2</td>
+
+        <td>Regularly tested</td>
+      </tr>
+
+      <tr>
+        <td>FreeBSD 4.8</td>
+
+        <td>gcc 2.95.4</td>
+
+        <td>Regularly tested</td>
+      </tr>
+
+      <tr>
+        <td>AIX 5.1.0 L</td>
+
+        <td>Visual Age C++ 5.0</td>
+
+        <td>Regularly tested</td>
+      </tr>
+
+      <tr>
+        <td>AIX 4.3.3</td>
+
+        <td>Visual Age C++ 6.0</td>
+
+        <td>Regularly tested</td>
+      </tr>
+
+      <tr>
+        <td>z/OS 1.3</td>
+
+        <td>cxx 1.3</td>
+
+        <td>Regularly tested</td>
+      </tr>
+
+      <tr>
+        <td>i5/OS (OS/400 iSeries) V5R3</td>
+
+        <td>iCC</td>
+
+        <td>Regularly tested</td>
+      </tr>
+
+      <tr>
+        <td>Cygwin</td>
+
+        <td>gcc 2.95.3</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>Red Hat Linux Advanced Server 2.1</td>
+
+        <td>Intel C++ Compiler 6.0.1</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>SuSE Linux Enterprise Server 9 (PPC)</td>
+
+        <td>Visual Age 7.0</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>Red Hat Alpha Linux 7.2</td>
+
+        <td>gcc 2.96</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>Red Hat Alpha Linux 7.2</td>
+
+        <td>Compaq C++ Compiler 3.2<br>
+         Compaq C Compiler 6.5.6</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>HP-UX 11.01</td>
+
+        <td>aCC A.03.13<br>
+         cc A.11.01.00</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>QNX</td>
+
+        <td>gcc</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>NetBSD, OpenBSD</td>
+
+        <td>gcc</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>BeOS</td>
+
+        <td>gcc</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>SGI/IRIX</td>
+
+        <td>MIPSpro CC</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>Tru64 (OSF)</td>
+
+        <td>Compaq's cxx compiler</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>HP-UX 11.01</td>
+
+        <td>CC A.03.10</td>
+
+        <td>Rarely tested</td>
+      </tr>
+
+      <tr>
+        <td>MP-RAS</td>
+
+        <td>NCR MP-RAS C/C++ Compiler</td>
+
+        <td>Rarely tested</td>
+      </tr>
+    </table>
+
+    <p><br>
+    </p>
+
+    <h4>Key to testing frequency</h4>
+
+    <dl>
+      <dt><i>Reference platform</i></dt>
+
+      <dd>ICU will work on these platforms with these compilers</dd>
+
+      <dt><i>Regularly tested</i></dt>
+
+      <dd>ICU should work on these platforms with these compilers</dd>
+
+      <dt><i>Rarely tested</i></dt>
+
+      <dd>ICU has been ported to these platforms but may not have been tested
+      there recently</dd>
+    </dl>
+
+    <h3><a name="HowToBuildWindows" href="#HowToBuildWindows" id=
+    "HowToBuildWindows">How To Build And Install On Windows</a></h3>
+
+    <p>Building International Components for Unicode requires:</p>
+
+    <ul>
+      <li>Microsoft NT 4.0 and above, or Windows 98 and above</li>
+
+      <li>Microsoft Visual C++ 2003</li>
+
+      <li><a href="#HowToBuildCygwin">Cygwin</a> is required when other
+      versions of Microsoft Visual C++ and other compilers are used to build
+      ICU.</li>
+    </ul>
+
+    <p>The steps are:</p>
+
+    <ol>
+      <li>Unzip the icu-XXXX.zip file into any convenient location. Using
+      command line zip, type "unzip -a icu-XXXX.zip -d drive:\directory", or
+      just use WinZip.</li>
+
+      <li>Be sure that the ICU binary directory, <i>&lt;ICU&gt;</i>\bin\, is
+      included in the <strong>PATH</strong> environment variable. The tests
+      will not work without the location of the ICU DLL files in the path.</li>
+
+      <li>Open the "<i>&lt;ICU&gt;</i>\source\allinone\allinone.sln" workspace
+      file in Microsoft Visual Studio .NET 2003. (This solution includes all
+      the International Components for Unicode libraries, necessary ICU
+      building tools, and the test suite projects). Please see the <a href=
+      "#HowToBuildWindowsCommandLine">command line note below</a> if you want
+      to build from the command line instead.</li>
+
+      <li>Set the active configuration to "Debug" or "Release" (See <a href=
+      "#HowToBuildWindowsConfig">Windows configuration note</a> below).</li>
+
+      <li>Choose the "Build" menu and select "Rebuild Solution". If you want to
+      build the Debug and Release at the same time, see the <a href=
+      "#HowToBuildWindowsBatch">batch configuration note</a> below.</li>
+
+      <li>Run the C++ test suite, "intltest". To do this: set the active
+      startup project to "intltest", and press Ctrl+F5 to run it. Make sure
+      that it passes without any errors.</li>
+
+      <li>Run the C test suite, "cintltst". To do this: set the active startup
+      project to "cintltst", and press Ctrl+F5 to run it. Make sure that it
+      passes without any errors.</li>
+
+      <li>Run the I/O test suite, "iotest". To do this: set the active startup
+      project to "iotest", and press Ctrl+F5 to run it. Make sure that it
+      passes without any errors.</li>
+
+      <li>You are now able to develop applications with ICU by using the
+      libraries and tools in <i>&lt;ICU&gt;</i>\bin\. The headers are in
+      <i>&lt;ICU&gt;</i>\include\ and the link libraries are in
+      <i>&lt;ICU&gt;</i>\lib\. To install the ICU runtime on a machine, or ship
+      it with your application, copy the needed components from
+      <i>&lt;ICU&gt;</i>\bin\ to a location on the system PATH or to your
+      application directory.</li>
+    </ol>
+
+    <p><a name="HowToBuildWindowsCommandLine" id=
+    "HowToBuildWindowsCommandLine"><strong>Using MSDEV At The Command Line
+    Note:</strong></a> You can build ICU from the command line. Assuming that
+    you have properly installed Microsoft Visual C++ to support command line
+    execution, you can run the following command, 'devenv.com
+    <i>&lt;ICU&gt;</i>\source\allinone\allinone.sln /build Release'. You can
+    also use Cygwin with this compiler to build ICU, and you can refer to the
+    <a href="#HowToBuildCygwin">How To Build And Install On Windows with
+    Cygwin</a> section for more details.</p>
+
+    <p><a name="HowToBuildWindowsConfig" id=
+    "HowToBuildWindowsConfig"><strong>Setting Active Configuration
+    Note:</strong></a> To set the active configuration, two different
+    possibilities are:</p>
+
+    <ul>
+      <li>Choose "Build" menu, select "Configuration Manager...", and select
+      "Release" or "Debug" for the Active Configuration Solution.</li>
+
+      <li>Another way is to select the desired build configuration from
+      "Solution Configurations" dropdown menu from the standard toolbar. It
+      will say "Release" or "Debug" in the dropdown list.</li>
+    </ul>
+
+    <p><a name="HowToBuildWindowsBatch" id=
+    "HowToBuildWindowsBatch"><strong>Batch Configuration Note:</strong></a> If
+    you want to build the Debug and Release configurations at the same time,
+    choose "Build" menu, and select "Batch Build...". Click the "Select All"
+    button, and then click the "Rebuild" button.</p>
+
+    <h3><a name="HowToBuildCygwin" href="#HowToBuildCygwin" id=
+    "HowToBuildCygwin">How To Build And Install On Windows with Cygwin</a></h3>
+
+    <p>Building International Components for Unicode with this configuration
+    requires:</p>
+
+    <ul>
+      <li>Microsoft NT 4.0 or above, or Windows 98 or above</li>
+
+      <li>Microsoft Visual C++ 6.0 or above (when gcc isn't used).</li>
+
+      <li>
+        Cygwin with the following installed: 
+
+        <ul>
+          <li>bash</li>
+
+          <li>GNU make</li>
+
+          <li>man (if you plan to look at the man pages)</li>
+        </ul>
+      </li>
+    </ul>
+
+    <p>There are two ways you can build ICU with Cygwin. You can build with gcc
+    or Microsoft Visual C++. If you use gcc, the resulting libraries and tools
+    will depend on the Cygwin environment. If you use Microsoft Visual C++, the
+    resulting libraries and tools do not depend on Cygwin and can be more
+    easily distributed to other Windows computers (the generated man pages and
+    shell scripts still need Cygwin). To build with gcc, please follow the "<a
+    href="#HowToBuildUNIX">How To Build And Install On UNIX</a>" instructions,
+    while you are inside a Cygwin bash shell. To build with Microsoft Visual
+    C++, please use the following instructions:</p>
+
+    <ol>
+      <li>Start the Windows "Command Prompt" window. This is different from the
+      gcc build, which requires the Cygwin Bash command prompt. The Microsoft
+      Visual C++ compiler will not work with a bash command prompt.</li>
+
+      <li>If the computer isn't set up to use Visual C++ from the command line,
+      you need to run VCVARS32.BAT (for example: "<tt>C:\Program
+      Files\Microsoft Visual Studio\VC98\Bin\VCVARS32.BAT</tt>").</li>
+
+      <li>Unzip the icu-XXXX.zip file into any convenient location. Using
+      command line zip, type "unzip -a icu-XXXX.zip -d drive:\directory", or
+      just use WinZip.</li>
+
+      <li>Change directory to "icu/source", which is where you unzipped
+      ICU.</li>
+
+      <li>Run "<tt>bash <a href="source/runConfigureICU">./runConfigureICU</a>
+      Cygwin/MSVC</tt>" (See <a href="#HowToWindowsConfigureICU">Windows
+      configuration note</a> and non-functional configure options below).</li>
+
+      <li>Type <tt>"make"</tt> to compile the libraries and all the data files.
+      This make command should be GNU make.</li>
+
+      <li>Optionally, type <tt>"make check"</tt> to run the test suite, which
+      checks for ICU's functionality integrity (See <a href=
+      "#HowToTestWithoutGmake">testing note</a> below).</li>
+
+      <li>Type <tt>"make install"</tt> to install ICU. If you used the
+      --prefix= option on configure or runConfigureICU, ICU will be installed
+      to the directory you specified. (See <a href=
+      "#HowToInstallICU">installation note</a> below).</li>
+    </ol>
+
+    <p><a name="HowToWindowsConfigureICU" id=
+    "HowToWindowsConfigureICU"><strong>Configuring ICU on Windows
+    NOTE:</strong></a> In addition to the Unix <a href=
+    "#HowToConfigureICU">configuration note</a> the following configure options
+    currently do not work on Windows with Microsoft's compiler. Some options
+    can work by manually editing <tt>icu/source/common/unicode/pwin32.h</tt>,
+    but manually editing the files is not recommended.</p>
+
+    <ul>
+      <li><tt>--disable-renaming</tt></li>
+
+      <li><tt>--disable-threading</tt></li>
+
+      <li><tt>--disable-tracing</tt></li>
+
+      <li><tt>--enable-64bit-libs</tt></li>
+
+      <li><tt>--enable-rpath</tt></li>
+
+      <li><tt>--with-iostream</tt></li>
+
+      <li><tt>--enable-static</tt> (Requires that U_STATIC_IMPLEMENTATION be
+      defined in user code that links against ICU's static libraries.)</li>
+
+      <li><tt>--with-data-packaging=files</tt> (The pkgdata tool currently does
+      not work in this mode. Manual packaging is required to use this
+      mode.)</li>
+    </ul>
+
+    <h3><a name="HowToBuildUNIX" href="#HowToBuildUNIX" id="HowToBuildUNIX">How
+    To Build And Install On UNIX</a></h3>
+
+    <p>Building International Components for Unicode on UNIX requires:</p>
+
+    <ul>
+      <li>A C++ compiler installed on the target machine (for example: gcc, CC,
+      xlC_r, aCC, cxx, etc...).</li>
+
+      <li>An ANSI C compiler installed on the target machine (for example:
+      cc).</li>
+
+      <li>A recent version of GNU make (3.77+).</li>
+
+      <li>For a list of z/OS tools please view the <a href=
+      "#HowToBuildZOS">z/OS build section</a> of this document for further
+      details.</li>
+    </ul>
+
+    <p>Here are the steps to build ICU:</p>
+
+    <ol>
+      <li>Decompress the icu-<i>X</i>.<i>Y</i>.tgz (or
+      icu-<i>X</i>.<i>Y</i>.tar.gz) file. For example, <tt>"gunzip -d &lt;
+      icu-<i>X</i>.<i>Y</i>.tgz | tar xvf -"</tt></li>
+
+      <li>Change directory to the "icu/source".</li>
+
+      <li>Run <tt>"chmod +x runConfigureICU configure install-sh"</tt> because
+      these files may have the wrong permissions.</li>
+
+      <li>Run the <tt><a href="source/runConfigureICU">runConfigureICU</a></tt>
+      script for your platform. (See <a href="#HowToConfigureICU">configuration
+      note</a> below).</li>
+
+      <li>Type <tt>"gmake"</tt> (or "make" if GNU make is the default make on
+      your platform) to compile the libraries and all the data files. The
+      proper name of the GNU make command is printed at the end of the
+      configuration run, as in "You must use gmake to compile ICU".</li>
+
+      <li>Optionally, type <tt>"gmake check"</tt> to run the test suite, which
+      checks for ICU's functionality integrity (See <a href=
+      "#HowToTestWithoutGmake">testing note</a> below).</li>
+
+      <li>Type <tt>"gmake install"</tt> to install ICU. If you used the
+      --prefix= option on configure or runConfigureICU, ICU will be installed
+      to the directory you specified. (See <a href=
+      "#HowToInstallICU">installation note</a> below).</li>
+    </ol>
+
+    <p><a name="HowToConfigureICU" id="HowToConfigureICU"><strong>Configuring
+    ICU NOTE:</strong></a> Type <tt>"./runConfigureICU --help"</tt> for help on
+    how to run it and a list of supported platforms. You may also want to type
+    <tt>"./configure --help"</tt> to print the available configure options that
+    you may want to give runConfigureICU. If you are not using the
+    runConfigureICU script, or your platform is not supported by the script,
+    you may need to set your CC, CXX, CFLAGS and CXXFLAGS environment
+    variables, and type <tt>"./configure"</tt>. Some of the more frequently
+    used options to configure are --disable-64bit-libs to create 32-bit
+    libraries, and --srcdir to do out of source builds (build the libraries in
+    the current location). HP-UX user's, please see this <a href=
+    "#ImportantNotesHPUX">note regarding HP-UX multithreaded build issues</a>
+    with newer compilers. Solaris user's, please see this <a href=
+    "#ImportantNotesSolaris">note regarding Solaris multithreaded build
+    issues</a>.</p>
+
+    <p><a name="HowToTestWithoutGmake" id=
+    "HowToTestWithoutGmake"><strong>Running The Tests From The Command Line
+    NOTE:</strong></a> You may have to set certain variables if you with to run
+    test programs individually, that is apart from "gmake check". The
+    environment variable <strong>ICU_DATA</strong> can be set to the full
+    pathname of the data directory to indicate where the locale data files and
+    conversion mapping tables are when you are not using the shared library
+    (e.g. by using the .dat archive or the individual data files). The trailing
+    "/" is required after the directory name (e.g. "$Root/source/data/out/"
+    will work, but the value "$Root/source/data/out" is not acceptable). You do
+    not need to set <strong>ICU_DATA</strong> if the complete shared data
+    library is in your library path.</p>
+
+    <p><a name="HowToInstallICU" id="HowToInstallICU"><strong>Installing ICU
+    NOTE:</strong></a> Some platforms use package management tools to control
+    the installation and uninstallation of files on the system, as well as the
+    integrity of the system configuration. You may want to check if ICU can be
+    packaged for your package management tools by looking into the "packaging"
+    directory. (Please note that if you are using a snapshot of ICU from CVS,
+    it is probable that the packaging scripts or related files are not up to
+    date with the contents of ICU at this time, so use them with caution).</p>
+
+    <h3><a name="HowToBuildZOS" href="#HowToBuildZOS" id="HowToBuildZOS">How To
+    Build And Install On z/OS (OS/390)</a></h3>
+
+    <p>You can install ICU on z/OS or OS/390 (the previous name of z/OS), but
+    IBM tests only the z/OS installation. These platforms commonly are called
+    "MVS". You install ICU in a z/OS UNIX system services file system such as
+    HFS or zFS. On this platform, it is important that you understand a few
+    details:</p>
+
+    <ul>
+      <li>APAR PQ58392 may be needed by z/OS 1.2 or 1.3 in order to get some
+      ICU number formatting functions to work properly. The APAR affects C and
+      C++ code.</li>
+
+      <li>The makedep executable that is used with the z/OS ICU build process
+      is not shipped with ICU. It is available at the <a href=
+      "http://www.ibm.com/servers/eserver/zseries/zos/unix/redbook/">z/OS UNIX
+      - Tools and Toys</a> site. The PATH environment variable should be
+      updated to contain the location of this executable prior to build.
+      Alternatively, makedep may be moved into an existing PATH directory.</li>
+
+      <li>The gnu utilities gmake and gzip/gunzip are needed and can be
+      obtained for z/OS from <a href=
+      "http://www.ibm.com/servers/eserver/zseries/zos/unix/redbook/">z/OS UNIX
+      - Tools and Toys</a>.</li>
+
+      <li>Since the default make on z/OS is not gmake, the pkgdata tool
+      requires that the "make" command is aliased to your installed version of
+      gmake. You may also need to set $MAKE equal to the fully qualified path
+      of GNU make. GNU make is available with the "z/OS UNIX - Tools and Toys"
+      that was mentioned above. ICU requires the same GNU make as described in
+      the UNIX build instructions.</li>
+
+      <li>Since USS does not support using the mmap() function over NFS, it is
+      recommended that you build ICU on a local filesystem. Once ICU has been
+      built, you should not have this problem while using ICU when the data
+      library has been built as a shared library, which is this is the default
+      setting.</li>
+
+      <li>Encoding considerations: The source code assumes that it is compiled
+      with codepage ibm-1047 (to be exact, the UNIX System Services variant of
+      it). The pax command converts all of the source code files from ASCII to
+      codepage ibm-1047 (USS) EBCDIC. However, some files are binary files and
+      must not be converted, or must be converted back to their original state.
+      You can use the <a href="as_is/os390/unpax-icu.sh">unpax-icu.sh</a>
+      script to do this for you automatically. It will unpackage the tar file
+      and convert all the necessary files for you automatically.</li>
+
+      <li>z/OS supports both native S/390 hexadecimal floating point and (with
+      OS/390 2.6 and later) IEEE 754 binary floating point. This is a compile
+      time option. Applications built with IEEE should use ICU DLLs that are
+      built with IEEE (and vice versa). The environment variable IEEE390=0 will
+      cause the z/OS version of ICU to be built without IEEE floating point
+      support and use the native hexadecimal floating point. By default ICU is
+      built with IEEE 754 support. Native floating point support is sufficient
+      for codepage conversion, resource bundle and UnicodeString operations,
+      but the Format APIs require IEEE binary floating point.</li>
+
+      <li>
+        <p>z/OS introduced the concept of Extra Performance Linkage (XPLINK) to
+        bring performance improvement opportunities to call-intensive C and C++
+        applications such as ICU. XPLINK is enabled on a DLL-by-DLL basis, so
+        if you are considering using XPLINK in your application that uses ICU,
+        you should consider building the XPLINK-enabled version of ICU. You
+        need to set ICU's environment variable <code>OS390_XPLINK=1</code>
+        prior to invoking the make process to produce binaries that are enabled
+        for XPLINK.</p>
+
+        <p>Note: XPLINK, which is enabled for z/OS 1.2 and later, requires the
+        PTF PQ69418 to build XPLINK enabled binaries.</p>
+      </li>
+
+      <li>Currently in ICU 3.0, there is an issue with building on z/OS without
+      XPLINK and with the C++ iostream. By default, the iostream library on
+      z/OS is XPLINK enabled. If you are not building an XPLINK enabled version
+      of ICU, you should use the <code>--with-iostream=old</code> configure
+      option when using runConfigureICU. This will prevent applications that
+      use the icuio library from crashing.</li>
+
+      <li>
+        <p>When you build ICU on a system such as z/OS 1.2, the binaries that
+        result can run on that level of the operating system and later, such as
+        z/OS 1.3 and z/OS 1.4. It's possible that you may have a z/OS 1.4
+        system, but you may need to deliver binaries on z/OS 1.2 and above.
+        z/OS gives you this ability by targeting the complier and linker to run
+        at the older level, thereby producing the desired binaries.</p>
+
+        <p>To set the compiler and LE environment to OS/390 2.10, specify the
+        following, "<code>./runConfigureICU OS390V2R10</code>"</p>
+
+        <p>To set the compiler and LE environment to z/OS 1.2 specify the
+        following, "<code>./runConfigureICU zOSV1R2</code>"</p>
+      </li>
+
+      <li>The rest of the instructions for building and testing ICU on z/OS
+      with UNIX System Services are the same as the <a href=
+      "#HowToBuildUNIX">How To Build And Install On UNIX</a> section.</li>
+    </ul>
+
+    <h4>z/OS (Batch/PDS) support outside the UNIX system services
+    environment</h4>
+
+    <p>By default, ICU builds its libraries into the UNIX file system (HFS). In
+    addition, there is a z/OS specific environment variable (OS390BATCH) to
+    build some libraries into the z/OS native file system. This is useful, for
+    example, when your application is externalized via Job Control Language
+    (JCL).</p>
+
+    <p>The OS390BATCH environment variable enables non-UNIX support including
+    the batch environment. When OS390BATCH is set, the libicuuc<i>XX</i>.dll,
+    libicudt<i>XX</i>e.dll, and libicudt<i>XX</i>e_stub.dll binaries are built
+    into data sets (the native file system). Turning on OS390BATCH does not
+    turn off the normal z/OS UNIX build. This means that the z/OS UNIX (HFS)
+    DLLs will always be created.</p>
+
+    <p>Two additional environment variables indicate the names of the z/OS data
+    sets to use. The LOADMOD environment variable identifies the name of the
+    data set that contains the dynamic link libraries (DLLs) and the LOADEXP
+    environment variable identifies the name of the data set that contains the
+    side decks, which are normally the files with the .x suffix in the UNIX
+    file system.</p>
+
+    <p>A data set is roughly equivalent to a UNIX or Windows file. For most
+    kinds of data sets the operating system maintains record boundaries. UNIX
+    and Windows files are byte streams. Two kinds of data sets are PDS and
+    PDSE. Each data set of these two types contains a directory. It is like a
+    UNIX directory. Each "file" is called a "member". Each member name is
+    limited to eight bytes, normally EBCDIC.</p>
+
+    <p>Here is an example of some environment variables that you can set prior
+    to building ICU:</p>
+<pre>
+<samp>OS390BATCH=1
+LOADMOD=<i>USER</i>.ICU.LOAD
+LOADEXP=<i>USER</i>.ICU.EXP</samp>
+</pre>
+
+    <p>The PDS member names for the DLL file names are as follows:</p>
+<pre>
+<samp>IXMI<i>XX</i>IN --&gt; libicui18n<i>XX</i>.dll
+IXMI<i>XX</i>UC --&gt; libicuuc<i>XX</i>.dll
+IXMI<i>XX</i>DA --&gt; libicudt<i>XX</i>e.dll
+IXMI<i>XX</i>D1 --&gt; libicudt<i>XX</i>e_stub.dll <i>(Only when OS390_STUBDATA=1)</i></samp>
+</pre>
+
+    <p>You should point the LOADMOD environment variable at a partitioned data
+    set extended (PDSE) and point the LOADEXP environment variable at a
+    partitioned data set (PDS). The PDSE can be allocated with the following
+    attributes:</p>
+<pre>
+<samp>Data Set Name . . . : <i>USER</i>.ICU.LOAD
+Management class. . : <i>**None**</i>
+Storage class . . . : <i>BASE</i>
+Volume serial . . . : <i>TSO007</i>
+Device type . . . . : <i>3390</i>
+Data class. . . . . : LOAD
+Organization  . . . : PO
+Record format . . . : U
+Record length . . . : 0
+Block size  . . . . : 32760
+1st extent cylinders: 1
+Secondary cylinders : 5
+Data set name type  : LIBRARY</samp>
+</pre>
+
+    <p>The PDS can be allocated with the following attributes:</p>
+<pre>
+<samp>Data Set Name . . . : <i>USER</i>.ICU.EXP
+Management class. . : <i>**None**</i>
+Storage class . . . : <i>BASE</i>
+Volume serial . . . : <i>TSO007</i>
+Device type . . . . : <i>3390</i>
+Data class. . . . . : <i>**None**</i>
+Organization  . . . : PO
+Record format . . . : FB
+Record length . . . : 80
+Block size  . . . . : <i>3200</i>
+1st extent cylinders: 3
+Secondary cylinders : 3
+Data set name type  : PDS</samp>
+</pre>
+
+    <h3><a name="HowToBuildOS400" href="#HowToBuildOS400" id=
+    "HowToBuildOS400">How To Build And Install On i5/OS (OS/400
+    iSeries)</a></h3>
+
+    <p>Before you start building ICU, ICU requires the following:</p>
+
+    <ul>
+      <li>QSHELL interpreter installed (install base option 30, operating
+      system) 
+      <!--li>QShell Utilities, PRPQ 5799-XEH (not required for V4R5)</li--></li>
+
+      <li>ILE C/C++ Compiler for iSeries, LPP 5722-WDS</li>
+
+      <li>The latest GNU facilities (You can get the GNU facilities for i5/OS
+      from <a href=
+      "http://www.ibm.com/servers/enable/site/porting/iseries/overview/gnu_utilities.html">
+      http://www.ibm.com/servers/enable/site/porting/iseries/overview/gnu_utilities.html</a>).
+      Older versions may not work properly.</li>
+    </ul>
+
+    <p>The following describes how to setup and build ICU. For background
+    information, you should look at the <a href="#HowToBuildUNIX">UNIX build
+    instructions</a>.</p>
+
+    <ol>
+      <li>
+        Create AS400 target library. This library will be the target for the
+        resulting modules, programs and service programs. You will specify this
+        library on the OUTPUTDIR environment variable in step 2.<br>
+         
+<pre>
+<samp>CRTLIB LIB(<i>libraryname</i>)</samp>
+</pre>
+        <br>
+      </li>
+
+      <li>
+        Set up the following environment variables in your build process (use
+        the <i>libraryname</i> from the previous step) 
+<pre>
+<samp>ADDENVVAR ENVVAR(CC) VALUE('/usr/bin/icc')
+ADDENVVAR ENVVAR(CXX) VALUE('/usr/bin/icc')
+ADDENVVAR ENVVAR(MAKE) VALUE('/usr/bin/gmake')
+ADDENVVAR ENVVAR(OUTPUTDIR) VALUE('<i>libraryname</i>')</samp>
+</pre>
+        <i>libraryname</i> identifies target as400 library for *module, *pgm
+        and *srvpgm objects.<br>
+        <br>
+         
+        <!--li>Add QCXXN, to your build process library list. This results in the resolution of CRTCPPMOD used by the icc compiler</li-->
+      </li>
+
+      <li>Run <tt>'CHGJOB CCSID(37)'</tt></li>
+
+      <li>Run <tt>'QSH'</tt></li>
+
+      <li>Run gunzip on the ICU source code compressed tar archive
+      (icu-<i>X</i>.<i>Y</i>.tgz or icu-<i>X</i>.<i>Y</i>.tar.gz).</li>
+
+      <li>Run unpax-icu.sh on the tar file from the ICU download page.</li>
+
+      <li>Change your current directory to icu/source.</li>
+
+      <li>Run <tt>'export CFLAGS=-O4 CXXFLAGS=-O4'</tt> to optimize your build
+      of ICU. If the build fails, rerun these build steps without this step
+      before asking the icu4c-support mailing list for help.</li>
+
+      <li>Run <tt>'cp ../as_is/os400/configure .'</tt></li>
+
+      <li>Run <tt>'./configure --host=as400-os400'</tt></li>
+
+      <li>Run <tt>'gmake'</tt> to build ICU.</li>
+
+      <li>Run <tt>'gmake check'</tt> to build the tests.</li>
+
+      <li>The "utility/MultithreadTest" test in intltest may have failed during
+      <tt>'gmake check'</tt>. In order to make this test pass, please use
+      <tt>'gmake check QIBM_MULTI_THREADED=Y'</tt> after you built the tests
+      with <tt>'gmake check'</tt> from the previous step. You can look at the
+      <a href=
+      "http://publib.boulder.ibm.com/iseries/v5r1/ic2924/index.htm?info/apis/concept4.htm">
+      iSeries Information Center</a> for more details.</li>
+    </ol>
+    <!-- end build environment -->
+
+    <h2><a name="HowToPackage" href="#HowToPackage" id="HowToPackage">How To
+    Package ICU</a></h2>
+
+    <p>There are many ways that a person can package ICU with their software
+    products. Usually only the libraries need to be considered for
+    packaging.</p>
+
+    <p>On UNIX, you should have used "<tt>gmake install</tt>" to make it easier
+    to develop and package ICU. The bin, lib and include directories are needed
+    to develop applications that use ICU. These directories will be created
+    relative to the "<tt>--prefix=</tt><i>dir</i>" configure option (See the <a
+    href="#HowToBuildUNIX">UNIX build instructions</a>). When ICU is built on
+    Windows, a similar directory structure is built.</p>
+
+    <p>When changes have been made to the standard ICU distribution, it is
+    recommended that at least one of the following guidelines be followed for
+    special packaging.</p>
+
+    <ol>
+      <li>Add a suffix name to the library names. This can be done with the
+      --with-library-suffix configure option.</li>
+
+      <li>The installation script should install the ICU libraries into the
+      application's directory.</li>
+    </ol>
+
+    <p>Following these guidelines prevents other applications that use a
+    standard ICU distribution from conflicting with any libraries that you
+    need. On operating systems that do not have a standard C++ ABI (name
+    mangling) for compilers, it is recommended to do this special packaging
+    anyway. More details on customizing ICU are available in the <a href=
+    "http://icu.sourceforge.net/userguide/">User's Guide</a>. The <a href=
+    "#SourceCode">ICU Source Code Organization</a> section of this readme.html
+    gives a more complete description of the libraries.</p>
+
+    <table border="1" cellpadding="3" summary=
+    "ICU has several libraries for you to use.">
+      <caption>
+        Here is an example of libraries that are frequently packaged.
+      </caption>
+
+      <tr>
+        <th scope="col">Library Name</th>
+
+        <th scope="col">Windows Filename</th>
+
+        <th scope="col">Linux Filename</th>
+
+        <th scope="col">Comment</th>
+      </tr>
+
+      <tr>
+        <td>Data Library</td>
+
+        <td>icudt<i>XY</i>l.dll</td>
+
+        <td>libicudata.so.<i>XY</i>.<i>Z</i></td>
+
+        <td>Data required by the Common and I18n libraries. There are many ways
+        to package and <a href=
+        "http://icu.sourceforge.net/userguide/icudata.html">customize this
+        data</a>, but by default this is all you need.</td>
+      </tr>
+
+      <tr>
+        <td>Common Library</td>
+
+        <td>icuuc<i>XY</i>.dll</td>
+
+        <td>libicuuc.so.<i>XY</i>.<i>Z</i></td>
+
+        <td>Base library required by all other ICU libraries.</td>
+      </tr>
+
+      <tr>
+        <td>Internationalization (i18n) Library</td>
+
+        <td>icuin<i>XY</i>.dll</td>
+
+        <td>libicui18n.so.<i>XY</i>.<i>Z</i></td>
+
+        <td>A library that contains many locale based internationalization
+        (i18n) functions.</td>
+      </tr>
+
+      <tr>
+        <td>Layout Engine</td>
+
+        <td>icule<i>XY</i>.dll</td>
+
+        <td>libicule.so.<i>XY</i>.<i>Z</i></td>
+
+        <td>An optional engine for doing font layout.</td>
+      </tr>
+
+      <tr>
+        <td>Layout Extensions Engine</td>
+
+        <td>iculx<i>XY</i>.dll</td>
+
+        <td>libiculx.so.<i>XY</i>.<i>Z</i></td>
+
+        <td>An optional engine for doing font layout that uses parts of
+        ICU.</td>
+      </tr>
+
+      <tr>
+        <td>ICU I/O (Unicode stdio) Library</td>
+
+        <td>icuio<i>XY</i>.dll</td>
+
+        <td>libicuio.so.<i>XY</i>.<i>Z</i></td>
+
+        <td>An optional library that provides a stdio like API with Unicode
+        support.</td>
+      </tr>
+
+      <tr>
+        <td>Tool Utility Library</td>
+
+        <td>icutu<i>XY</i>.dll</td>
+
+        <td>libicutu.so.<i>XY</i>.<i>Z</i></td>
+
+        <td>An internal library that contains internal APIs that are only used
+        by ICU's tools. If you do not use ICU's tools, you do not need this
+        library.</td>
+      </tr>
+    </table>
+
+    <p>Normally only the above ICU libraries need to be considered for
+    packaging. The versionless symbolic links to these libraries are only
+    needed for easier development. The <i>X</i>, <i>Y</i> and <i>Z</i> parts of
+    the name are the version numbers of ICU. For example, ICU 2.0.2 would have
+    the name libicuuc.so.20.2 for the common library. The exact format of the
+    library names can vary between platforms due to how each platform can
+    handles library versioning.</p>
+
+    <h2><a name="ImportantNotes" href="#ImportantNotes" id=
+    "ImportantNotes">Important Notes About Using ICU</a></h2>
+
+    <h3><a name="ImportantNotesCPlusPlus" href="#ImportantNotesCPlusPlus" id=
+    "ImportantNotesCPlusPlus">Using ICU in a Multithreaded Environment</a></h3>
+
+    <p>Upon the first usage of most ICU APIs, the global mutex will get
+    initialized properly, but you can use the <code>u_init()</code> function
+    from uclean.h to ensure that it is initialized properly. Without calling
+    this function from a single thread, the data caches inside ICU may get
+    initialized more than once from multiple threads, which may cause memory
+    leaks and other problems. There is no harm in calling <code>u_init()</code>
+    in a single threaded application.</p>
+
+    <h4><a name="ImportantNotesHPUX" href="#ImportantNotesHPUX" id=
+    "ImportantNotesHPUX">Using ICU in a Multithreaded Environment on
+    HP-UX</a></h4>
+
+    <p>If you are building ICU with a newer aCC compiler and you are planning
+    on using the older &lt;iostream.h&gt; instead of the newer
+    &lt;iostream&gt;, you will need to use a special configure flag before
+    building ICU. By default, the aCC <a href=
+    "http://docs.hp.com/hpux/onlinedocs/dev/aCC/a_03_30/options.htm#optioncap-AA">
+    -AA</a> flag is used on HP-UX when the compiler supports that option in
+    order to make ICU thread safe with RogueWave and other libraries using the
+    2.0 Standard C++ library. Your applications that use ICU will also need to
+    use the <a href=
+    "http://docs.hp.com/hpux/onlinedocs/dev/aCC/a_03_30/options.htm#optioncap-AA">
+    -AA</a> compiler flag. To turn off this behavior in ICU, you will need to
+    use the --with-iostream= old configure option when you first use
+    runConfigureICU.</p>
+
+    <h4><a name="ImportantNotesSolaris" href="#ImportantNotesSolaris" id=
+    "ImportantNotesSolaris">Using ICU in a Multithreaded Environment on
+    Solaris</a></h4>
+
+    <h5>ICU's tests may hang on Solaris 8 and Earlier</h5>
+
+    <p>ICU's tests use <code>usleep()</code>, which is multithread unsafe on
+    versions of Solaris before version 9. This does not mean that ICU is not
+    thread safe because only ICU's test code uses <code>usleep()</code>. The
+    <code>sleep()</code> and <code>nanosleep()</code> functions could be used
+    in ICU's multithreaded tests, but <code>sleep()</code> and
+    <code>nanosleep()</code> are not a stable API between versions of Solaris.
+    Solaris 9 fixes usleep so that it is multithread safe.</p>
+
+    <p>This hanging behavior tends to appear on multi-CPU machines. Single CPU
+    Solaris 8 machines do not seem to show this behavior.</p>
+
+    <p>In a future version of ICU, we hope to find a portable solution to this
+    problem that will work between the modern versions of Solaris.</p>
+
+    <h5>Solaris Deadlock Issues in Solaris 8 (2.8) and Earlier</h5>
+
+    <p>Solaris 8, and earlier, has outstanding thread deadlocking issues that
+    <strong>may</strong> be problematic for applications using either native,
+    or POSIX, threading on these platforms. Sun states that Solaris 9
+    <strong>does not</strong> have the deadlock problems. Deadlocks
+    <strong>may</strong> occur either during initialization of the Solaris
+    threading library, or at any other time.</p>
+
+    <p>Sun Microsystems has provided a Sun Alert Notification regarding the
+    issue. Users <strong>should</strong> consider applying the latest OS
+    patches to their Solaris installations in order to help avoid deadlock.
+    Further information regarding the issue, and links to applicable patches,
+    may be found at:</p>
+
+    <p>[1] "<i>Applications Linked to libthread May Hang</i>", Sun Alert
+    Notification, Sun Microsystems, Inc., 04-Sep-2002<br>
+     <a href=
+    "http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsalert%2F46867&amp;zone_32=4663077">
+    http://sunsolve.sun.com/pub-cgi/retrieve.pl?doc=fsalert%2F46867&amp;zone_32=4663077</a></p>
+
+    <p>Sun is <strong>not</strong> providing patches for Solaris 6 (2.6), or
+    earlier.</p>
+
+    <p>Sun states that by applying the patch users will avoid the deadlock
+    issues. However, with all applicable patches applied, deadlock
+    <strong>may</strong> still be seen, as demonstrated by the ICU Mutex unit
+    tests. The unit test will hang indefinitely. No bug exists in ICU. However,
+    a latent bug still exists in Solaris, which Sun Microsystems has yet to
+    resolve. In order to avoid this, users are <strong>suggested</strong> to
+    modify their LD_LIBRARY_PATH according to the guidelines specified by Sun
+    Microsystems in the Sun Alert Notification.</p>
+
+    <h5>Linking on Solaris</h5>
+
+    <p>In order to avoid synchronization and threading issues, developers are
+    <strong>suggested</strong> to strictly follow the compiling and linking
+    guidelines for multithreaded applications, specified in the following
+    document from Sun Microsystems. Most notably, pay strict attention to the
+    following statements from Sun:</p>
+
+    <blockquote>
+      <p>To use libthread, specify -lthread before -lc on the ld command line,
+      or last on the cc command line.</p>
+
+      <p>To use libpthread, specify -lpthread before -lc on the ld command
+      line, or last on the cc command line.</p>
+    </blockquote>
+
+    <p>Failure to do this may cause spurious lock conflicts, recursive mutex
+    failure, and deadlock.</p>
+
+    <p>[2] "<i>Solaris Multithreaded Programming Guide, Compiling and
+    Debugging</i>", Sun Microsystems, Inc., Apr 2004<br>
+     <a href=
+    "http://docs.sun.com/db/doc/806-6867/6jfpgdcob?a=view">http://docs.sun.com/db/doc/806-6867/6jfpgdcob?a=view</a></p>
+
+    <h3><a name="ImportantNotesWindows" href="#ImportantNotesWindows" id=
+    "ImportantNotesWindows">Windows Platform</a></h3>
+
+    <p>If you are building on the Win32 platform, it is important that you
+    understand a few of the following build details.</p>
+
+    <h4>DLL directories and the PATH setting</h4>
+
+    <p>As delivered, the International Components for Unicode build as several
+    DLLs, which are placed in the "<i>&lt;ICU&gt;</i>\bin" directory. You must
+    add this directory to the PATH environment variable in your system, or any
+    executables you build will not be able to access International Components
+    for Unicode libraries. Alternatively, you can copy the DLL files into a
+    directory already in your PATH, but we do not recommend this. You can wind
+    up with multiple copies of the DLL and wind up using the wrong one.</p>
+
+    <h4><a name="ImportantNotesWindowsPath" id=
+    "ImportantNotesWindowsPath">Changing your PATH</a></h4>
+
+    <ul>
+      <li><strong>Windows 2000</strong>: Use the System Icon in the Control
+      Panel. Pick the "Advanced" tab. Select the "Environment Variables..."
+      button. Select the variable PATH in the lower box, and select the lower
+      "Edit..." button. In the "Variable Value" box, append the string
+      ";<i>&lt;ICU&gt;</i>\bin" to the end of the path string. If there is
+      nothing there, just type in "<i>&lt;ICU&gt;</i>\bin". Click the Set
+      button, then the OK button.</li>
+
+      <li><strong>Windows NT</strong>: Use the System Icon in the Control
+      Panel. Pick the "Environment" tab, and select the variable PATH in the
+      lower box. In the "value" box, append the string
+      ";<i>&lt;ICU&gt;</i>\bin" at the end of the path string. If there is
+      nothing there, just type in "<i>&lt;ICU&gt;</i>\bin". Click the Set
+      button, then the OK button.</li>
+
+      <li><strong>Windows 95/98/ME</strong>: Edit the autoexec.bat, and add the
+      following line to the end of file, "SET
+      PATH=%PATH%;<i>&lt;ICU&gt;</i>\bin"</li>
+    </ul>
+
+    <p>Note: When packaging a Windows application for distribution and
+    installation on user systems, copies of the ICU DLLs should be included
+    with the application, and installed for exclusive use by the application.
+    This is the only way to insure that your application is running with the
+    same version of ICU, built with exactly the same options, that you
+    developed and tested with. Refer to Microsoft's guidelines on the usage of
+    DLLs, or search for the phrase "DLL hell" on <a href=
+    "http://msdn.microsoft.com/">msdn.microsoft.com</a>.</p>
+
+    <h3><a name="ImportantNotesUNIX" href="#ImportantNotesUNIX" id=
+    "ImportantNotesUNIX">UNIX Type Platform</a></h3>
+
+    <p>If you are building on a UNIX platform, and if you are installing ICU in
+    a non-standard location, you may need to add the location of your ICU
+    libraries to your <strong>LD_LIBRARY_PATH</strong> or
+    <strong>LIBPATH</strong> environment variable (or the equivalent runtime
+    library path environment variable for your system). The ICU libraries may
+    not link or load properly without doing this.</p>
+
+    <p>Note that if you do not want to have to set this variable, you may
+    instead use the --enable-rpath option at configuration time. This option
+    will instruct the linker to always look for the libraries where they are
+    installed. You will need to use the appropriate linker options when linking
+    your own applications and libraries against ICU, too. Please refer to your
+    system's linker manual for information about runtime paths. The use of
+    rpath also means that when building a new version of ICU you should not
+    have an older version installed in the same place as the new version's
+    installation directory, as the older libraries will used during the build,
+    instead of the new ones, likely leading to an incorrectly build ICU. (This
+    is the proper behavior of rpath.)</p>
+
+    <h2><a name="PlatformDependencies" href="#PlatformDependencies" id=
+    "PlatformDependencies">Platform Dependencies</a></h2>
+
+    <h3><a name="PlatformDependenciesNew" href="#PlatformDependenciesNew" id=
+    "PlatformDependenciesNew">Porting To A New Platform</a></h3>
+
+    <p>If you are using ICU's Makefiles to build ICU on a new platform, there
+    are a few places where you will need to add or modify some files. If you
+    need more help, you can always ask the <a href=
+    "http://icu.sourceforge.net/contacts.html">icu4c-support mailing list</a>.
+    Once you have finished porting ICU to a new platform, it is recommended
+    that you contribute your changes back to ICU via the icu4c-support mailing
+    list. This will make it easier for everyone to benefit from your work.</p>
+
+    <h4>Data For a New Platform</h4>
+
+    <p>For some people, it may not be necessary for completely build ICU. Most
+    of the makefiles and build targets are for tools that are used for building
+    ICU's data, and an application's data (when an application uses ICU
+    resource bundles for its data).</p>
+
+    <p>Data files can be built on a different platform when both platforms
+    share the same endianness and the same charset family. This assertion does
+    not include platform dependent DLLs/shared/static libraries. For details
+    see the User Guide <a href=
+    "http://icu.sourceforge.net/userguide/icudata.html">ICU Data</a>
+    chapter.</p>
+
+    <p>ICU 2.8 removes the requirement that ICU be completely built in the
+    native operating environment. It adds the icuswap tool which can be run on
+    any platform to turn binary ICU data files from any one of the three
+    formats into any one of the other data formats. This allows a application
+    to use ICU data built anywhere to be used for any other target
+    platform.</p>
+
+    <p><strong>WARNING!</strong> Building ICU without running the tests is not
+    recommended. The tests verify that ICU is safe to use. It is recommended
+    that you try to completely port and test ICU before using the libraries for
+    your own application.</p>
+
+    <h4>Adapting Makefiles For a New Platform</h4>
+
+    <p>Try to follow the build steps from the <a href=
+    "#HowToBuildUNIX">UNIX</a> build instructions. If the configure script
+    fails, then you will need to modify some files. Here are the usual steps
+    for porting to a new platform:<br>
+    </p>
+
+    <ol>
+      <li>Create an mh file in icu/source/config/. You can use mh-linux or a
+      similar mh file as your base configuration.</li>
+
+      <li>Modify icu/source/aclocal.m4 to recognize your platform's mh
+      file.</li>
+
+      <li>Modify icu/source/configure.in to properly set your <b>platform</b> C
+      Macro define.</li>
+
+      <li>Run <a href="http://www.gnu.org/software/autoconf/">autoconf</a> in
+      icu/source/ without any options. The autoconf tool is standard on most
+      Linux systems.</li>
+
+      <li>If you have any optimization options that you want to normally use,
+      you can modify icu/source/runConfigureICU to specify those options for
+      your platform.</li>
+
+      <li>Build and test ICU on your platform. It is very important that you
+      run the tests. If you don't run the tests, there is no guarentee that you
+      have properly ported ICU.</li>
+    </ol>
+
+    <h3><a name="PlatformDependenciesImpl" href="#PlatformDependenciesImpl" id=
+    "PlatformDependenciesImpl">Platform Dependent Implementations</a></h3>
+
+    <p>The platform dependencies have been mostly isolated into the following
+    files in the common library. This information can be useful if you are
+    porting ICU to a new platform.</p>
+
+    <ul>
+      <li>
+        <strong>unicode/platform.h.in</strong> (autoconf'ed platforms)<br>
+         <strong>unicode/p<i>XXXX</i>.h</strong> (others: pwin32.h, pmacos.h,
+        ..): Platform-dependent typedefs and defines:<br>
+        <br>
+         
+
+        <ul>
+          <li>XP_CPLUSPLUS for C++ only.</li>
+
+          <li>Generic types like UBool, int8_t, int16_t, int32_t, int64_t,
+          uint64_t etc.</li>
+
+          <li>U_EXPORT and U_IMPORT for specifying dynamic library import and
+          export</li>
+
+          <li>&lt;iostream&gt; usability</li>
+        </ul>
+        <br>
+      </li>
+
+      <li>
+        <strong>unicode/putil.h, putil.c</strong>: platform-dependent
+        implementations of various functions that are platform dependent:<br>
+        <br>
+         
+
+        <ul>
+          <li>uprv_isNaN, uprv_isInfinite, uprv_getNaN and uprv_getInfinity for
+          handling special floating point values.</li>
+
+          <li>uprv_tzset, uprv_timezone, uprv_tzname and time for getting
+          platform specific time and time zone information.</li>
+
+          <li>u_getDataDirectory for getting the default data directory.</li>
+
+          <li>uprv_getDefaultLocaleID for getting the default locale
+          setting.</li>
+
+          <li>uprv_getDefaultCodepage for getting the default codepage
+          encoding.</li>
+        </ul>
+        <br>
+      </li>
+
+      <li>
+        <strong>umutex.h, umutex.c</strong>: Code for doing synchronization in
+        multithreaded applications. If you wish to use International Components
+        for Unicode in a multithreaded application, you must provide a
+        synchronization primitive that the classes can use to protect their
+        global data against simultaneous modifications. See Users' guide for
+        more information.<br>
+        <br>
+         
+
+        <ul>
+          <li>We supply sample implementations for Windows, Sun Solaris, Linux,
+          AIX, HP-UX, BSD, Mac OS X, z/OS and many others.</li>
+        </ul>
+        <br>
+      </li>
+
+      <li><strong>umapfile.h, umapfile.c</strong>: functions for mapping or
+      otherwise reading or loading files into memory. All access by ICU to data
+      from files makes use of these functions.<br>
+      <br>
+      </li>
+
+      <li>Using platform specific #ifdef macros are highly discouraged outside
+      of the scope of these files. When the source code gets updated in the
+      future, these #ifdef's can cause testing problems for your platform.</li>
+    </ul>
+
+    <h3><a name="PlatformDependenciesBuildOrder" href=
+    "#PlatformDependenciesBuildOrder" id="PlatformDependenciesBuildOrder">Build
+    Order Without Using ICU's Makefiles</a></h3>
+
+    <p>It is possible to build each library individually without our Makefiles.
+    They must be built in the following order:<br>
+    </p>
+
+    <ol>
+      <li>stubdata</li>
+
+      <li>common</li>
+
+      <li>i18n</li>
+
+      <li>toolutil</li>
+
+      <li>makeconv</li>
+
+      <li>gencnval</li>
+
+      <li>genprops</li>
+
+      <li>gencase</li>
+
+      <li>gennames</li>
+
+      <li>genpname</li>
+
+      <li>gennorm</li>
+
+      <li>gensprep</li>
+
+      <li>genbrk</li>
+
+      <li>genuca</li>
+
+      <li>genrb</li>
+
+      <li>genccode</li>
+
+      <li>gencmn</li>
+
+      <li>pkgdata</li>
+
+      <li>makedata (a project on Windows, or source/data/Makefile on UNIX)</li>
+
+      <li>layout (optional)</li>
+
+      <li>layoutex (optional)</li>
+
+      <li>ctestfw, intltest, iotest and cintltst, if you want to run the test
+      suite.</li>
+
+      <li>uconv, icuswap, derb and icuio can also be optionally built.</li>
+    </ol>
+    <hr>
+
+    <p>Copyright &copy; 1997-2005 International Business Machines Corporation
+    and others. All Rights Reserved.<br>
+     IBM Globalization Center of Competency - San Jos&eacute;<br>
+     5600 Cottle Road<br>
+     San Jos&eacute;, CA 95193<br>
+     USA</p>
+  </body>
+</html>
+
diff --git a/source/.cvsignore b/source/.cvsignore
new file mode 100644
index 0000000..a5c8e2d
--- /dev/null
+++ b/source/.cvsignore
@@ -0,0 +1,9 @@
+config.log
+config.cache
+config.status
+Makefile
+icudefs.mk
+README
+bin
+lib
+Doxyfile
\ No newline at end of file
diff --git a/source/Doxyfile.in b/source/Doxyfile.in
new file mode 100644
index 0000000..307165a
--- /dev/null
+++ b/source/Doxyfile.in
@@ -0,0 +1,222 @@
+# Doxyfile 1.3.7
+#  ********************************************************************
+#  * COPYRIGHT:
+#  * Copyright (c) 2004, International Business Machines Corporation
+#  * and others. All Rights Reserved.
+#  ********************************************************************
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME           = "ICU @VERSION@"
+PROJECT_NUMBER         = 
+OUTPUT_DIRECTORY       = doc
+CREATE_SUBDIRS         = NO
+OUTPUT_LANGUAGE        = English
+USE_WINDOWS_ENCODING   = YES
+BRIEF_MEMBER_DESC      = YES
+REPEAT_BRIEF           = YES
+ABBREVIATE_BRIEF       = 
+ALWAYS_DETAILED_SEC    = NO
+INLINE_INHERITED_MEMB  = NO
+FULL_PATH_NAMES        = NO
+STRIP_FROM_PATH        = 
+STRIP_FROM_INC_PATH    = 
+SHORT_NAMES            = NO
+JAVADOC_AUTOBRIEF      = YES
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP         = NO
+INHERIT_DOCS           = YES
+DISTRIBUTE_GROUP_DOC   = NO
+TAB_SIZE               = 8
+ALIASES                = "draft=\par ICU_Draft:\n" \
+                         "stable=\par ICU_Stable:\n" \
+                         "deprecated=\par ICU_Deprecated:\n" \
+                         "obsolete=\par ICU_Obsolete:\n" \
+                         "internal=\par ICU_Internal:\n"
+OPTIMIZE_OUTPUT_FOR_C  = YES
+OPTIMIZE_OUTPUT_JAVA   = NO
+SUBGROUPING            = YES
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL            = NO
+EXTRACT_PRIVATE        = NO
+EXTRACT_STATIC         = NO
+EXTRACT_LOCAL_CLASSES  = YES
+EXTRACT_LOCAL_METHODS  = NO
+HIDE_UNDOC_MEMBERS     = NO
+HIDE_UNDOC_CLASSES     = NO
+HIDE_FRIEND_COMPOUNDS  = NO
+HIDE_IN_BODY_DOCS      = NO
+INTERNAL_DOCS          = YES
+CASE_SENSE_NAMES       = YES
+HIDE_SCOPE_NAMES       = NO
+SHOW_INCLUDE_FILES     = YES
+INLINE_INFO            = YES
+SORT_MEMBER_DOCS       = YES
+SORT_BRIEF_DOCS        = NO
+SORT_BY_SCOPE_NAME     = NO
+GENERATE_TODOLIST      = YES
+GENERATE_TESTLIST      = YES
+GENERATE_BUGLIST       = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS       = 
+MAX_INITIALIZER_LINES  = 30
+SHOW_USED_FILES        = YES
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET                  = NO
+WARNINGS               = YES
+WARN_IF_UNDOCUMENTED   = YES
+WARN_IF_DOC_ERROR      = YES
+WARN_FORMAT            = "$file:$line: $text"
+WARN_LOGFILE           = 
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT                  = ./common/unicode/platform.h @srcdir@/common/unicode @srcdir@/i18n/unicode @srcdir@/io/unicode @srcdir@/layout/LEFontInstance.h @srcdir@/layout/LEGlyphStorage.h @srcdir@/layout/LELanguages.h @srcdir@/layout/LEScripts.h @srcdir@/layout/LESwaps.h @srcdir@/layout/LETypes.h @srcdir@/layout/LayoutEngine.h @srcdir@/layoutex/layout
+FILE_PATTERNS          = *.h
+RECURSIVE              = NO
+EXCLUDE                = @srcdir@/common/unicode/urename.h
+EXCLUDE_SYMLINKS       = NO
+EXCLUDE_PATTERNS       = config*.h
+EXAMPLE_PATH           = 
+EXAMPLE_PATTERNS       = 
+EXAMPLE_RECURSIVE      = NO
+IMAGE_PATH             = 
+INPUT_FILTER           = 
+FILTER_SOURCE_FILES    = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER         = YES
+INLINE_SOURCES         = NO
+STRIP_CODE_COMMENTS    = YES
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION    = YES
+VERBATIM_HEADERS       = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX     = YES
+COLS_IN_ALPHA_INDEX    = 5
+IGNORE_PREFIX          = 
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML          = YES
+HTML_OUTPUT            = html
+HTML_FILE_EXTENSION    = .html
+HTML_HEADER            = 
+HTML_FOOTER            = 
+HTML_STYLESHEET        = 
+HTML_ALIGN_MEMBERS     = YES
+GENERATE_HTMLHELP      = NO
+CHM_FILE               = 
+HHC_LOCATION           = 
+GENERATE_CHI           = NO
+BINARY_TOC             = NO
+TOC_EXPAND             = NO
+DISABLE_INDEX          = NO
+ENUM_VALUES_PER_LINE   = 4
+GENERATE_TREEVIEW      = NO
+TREEVIEW_WIDTH         = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX         = NO
+LATEX_OUTPUT           = latex
+LATEX_CMD_NAME         = latex
+MAKEINDEX_CMD_NAME     = makeindex
+COMPACT_LATEX          = NO
+PAPER_TYPE             = a4wide
+EXTRA_PACKAGES         = 
+LATEX_HEADER           = 
+PDF_HYPERLINKS         = NO
+USE_PDFLATEX           = NO
+LATEX_BATCHMODE        = NO
+LATEX_HIDE_INDICES     = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF           = NO
+RTF_OUTPUT             = rtf
+COMPACT_RTF            = NO
+RTF_HYPERLINKS         = NO
+RTF_STYLESHEET_FILE    = 
+RTF_EXTENSIONS_FILE    = 
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN           = NO
+MAN_OUTPUT             = man
+MAN_EXTENSION          = .3
+MAN_LINKS              = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML           = NO
+XML_OUTPUT             = xml
+XML_SCHEMA             = 
+XML_DTD                = 
+XML_PROGRAMLISTING     = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF   = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD       = NO
+PERLMOD_LATEX          = YES
+PERLMOD_PRETTY         = YES
+PERLMOD_MAKEVAR_PREFIX = 
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING   = YES
+MACRO_EXPANSION        = NO
+EXPAND_ONLY_PREDEF     = NO
+SEARCH_INCLUDES        = YES
+INCLUDE_PATH           = 
+INCLUDE_FILE_PATTERNS  = 
+PREDEFINED             = 
+EXPAND_AS_DEFINED      = 
+SKIP_FUNCTION_MACROS   = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+TAGFILES               = 
+GENERATE_TAGFILE       = 
+ALLEXTERNALS           = NO
+EXTERNAL_GROUPS        = YES
+PERL_PATH              = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS         = YES
+HIDE_UNDOC_RELATIONS   = YES
+HAVE_DOT               = NO
+CLASS_GRAPH            = YES
+COLLABORATION_GRAPH    = YES
+UML_LOOK               = NO
+TEMPLATE_RELATIONS     = NO
+INCLUDE_GRAPH          = YES
+INCLUDED_BY_GRAPH      = YES
+CALL_GRAPH             = NO
+GRAPHICAL_HIERARCHY    = YES
+DOT_IMAGE_FORMAT       = png
+DOT_PATH               = 
+DOTFILE_DIRS           = 
+MAX_DOT_GRAPH_WIDTH    = 1024
+MAX_DOT_GRAPH_HEIGHT   = 1024
+MAX_DOT_GRAPH_DEPTH    = 0
+GENERATE_LEGEND        = YES
+DOT_CLEANUP            = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+SEARCHENGINE           = NO
+CGI_NAME               = search.cgi
diff --git a/source/Makefile.in b/source/Makefile.in
new file mode 100644
index 0000000..9aa0dd4
--- /dev/null
+++ b/source/Makefile.in
@@ -0,0 +1,203 @@
+#******************************************************************************
+#
+#   Copyright (C) 1998-2004, International Business Machines
+#   Corporation and others.  All Rights Reserved.
+#
+#******************************************************************************
+## Top-level Makefile.in for ICU
+## Stephen F. Booth
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+
+top_builddir = .
+
+include $(top_builddir)/icudefs.mk
+
+docdir = $(datadir)/doc
+docsubdir = $(PACKAGE)$(ICULIBDASHSUFFIX)/html
+
+##
+
+## Build directory information
+subdir = .
+
+#AUTOCONF = @AUTOCONF@
+
+## Optional directory setup
+@LAYOUT_TRUE@LAYOUT = layout layoutex
+@ICUIO_TRUE@ICUIO = io
+@EXTRAS_TRUE@EXTRA = extra
+@TESTS_TRUE@TEST = test
+@SAMPLES_TRUE@SAMPLE = samples
+
+DOXYGEN = @DOXYGEN@
+
+## Files to remove for 'make clean'
+CLEANFILES = *~ 
+
+## Files built (autoconfed) and installed
+INSTALLED_BUILT_FILES = $(top_builddir)/config/Makefile.inc $(top_builddir)/config/icu-config @platform_make_fragment@ $(EXTRA_DATA:%=$(DESTDIR)$(pkglibdir)/%)
+
+## Files built (autoconfed) but not installed
+LOCAL_BUILT_FILES = icudefs.mk
+
+DOCDIRS = common i18n
+SUBDIRS =  stubdata common i18n $(LAYOUT) tools data $(ICUIO) $(EXTRA) $(SAMPLE) $(TEST)
+
+SECTION = 1
+
+MANX_FILES = config/icu-config.$(SECTION)
+
+ALL_MAN_FILES = $(MANX_FILES)
+
+## Extra files to install [nothing at present]
+EXTRA_DATA =
+
+## List of phony targets
+.PHONY : all all-local all-recursive install install-local install-udata install-udata-files install-udata-dlls		\
+install-recursive clean clean-local clean-recursive distclean		\
+distclean-local distclean-recursive doc dist dist-local dist-recursive	\
+check check-local check-recursive clean-recursive-with-twist install-icu \
+doc install-doc
+
+## Clear suffix list
+.SUFFIXES :
+
+## List of standard targets
+all: all-local all-recursive
+install: install-recursive install-local
+clean: clean-recursive-with-twist clean-local
+distclean : distclean-recursive distclean-local
+dist: dist-recursive dist-local
+check: all check-recursive check-local
+check-recursive: all
+
+ifeq ($(DOXYGEN),)
+doc:
+	@echo you need Doxygen to generate documentation. Doxygen can be found on the Web
+	@echo at http://www.doxygen.org/
+else
+doc: doc/html/index.html
+
+doc/html/index.html: Doxyfile $(wildcard ./common/unicode/platform.h $(srcdir)/common/unicode/*.h $(srcdir)/i18n/unicode/*.h $(srcdir)/layout/unicode/*.h $(srcdir)/io/unicode/*.h)
+	$(DOXYGEN)
+
+Doxyfile: $(srcdir)/Doxyfile.in
+	CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
+endif
+
+LOCAL_SUBDIRS = $(SUBDIRS)
+CLEAN_FIRST_SUBDIRS = tools
+
+$(LIBDIR) $(BINDIR):
+	-$(MKINSTALLDIRS) $@
+
+## Recursive targets
+all-recursive install-recursive clean-recursive distclean-recursive dist-recursive check-recursive: $(LIBDIR) $(BINDIR)
+	@dot_seen=no; \
+	target=`echo $@ | sed s/-recursive//`; \
+	list='$(LOCAL_SUBDIRS)'; for subdir in $$list; do \
+	  echo "$(MAKE)[$(MAKELEVEL)]: Making \`$$target' in \`$$subdir'"; \
+	  if test "$$subdir" = "."; then \
+	    dot_seen=yes; \
+	    local_target="$$target-local"; \
+	  else \
+	    local_target="$$target"; \
+	  fi; \
+	  (cd $$subdir && $(MAKE) RECURSIVE=YES $$local_target) || exit; \
+	done; \
+	if test "$$dot_seen" = "no"; then \
+	  $(MAKE) "$$target-local" || exit; \
+	fi
+
+clean-recursive-with-twist:
+	$(MAKE) clean-recursive LOCAL_SUBDIRS='$(CLEAN_FIRST_SUBDIRS) $(filter-out $(CLEAN_FIRST_SUBDIRS),$(LOCAL_SUBDIRS))'
+
+all-local: $(srcdir)/configure $(LOCAL_BUILT_FILES) $(INSTALLED_BUILT_FILES)
+
+install-local: install-icu install-manx
+
+install-icu: $(INSTALLED_BUILT_FILES)
+	@$(MKINSTALLDIRS) $(DESTDIR)$(pkgdatadir)/config
+	@$(MKINSTALLDIRS) $(DESTDIR)$(pkglibdir)
+	@$(MKINSTALLDIRS) $(DESTDIR)$(bindir)
+	@$(MKINSTALLDIRS) $(DESTDIR)$(sbindir)
+	$(INSTALL_DATA) @platform_make_fragment@ $(DESTDIR)$(pkgdatadir)/config/@platform_make_fragment_name@
+	$(INSTALL_SCRIPT) $(top_srcdir)/mkinstalldirs $(DESTDIR)$(pkgdatadir)/mkinstalldirs
+	$(INSTALL_DATA) $(top_srcdir)/../license.html $(DESTDIR)$(pkgdatadir)/license.html
+	$(INSTALL_SCRIPT) $(top_builddir)/config/icu-config $(DESTDIR)$(bindir)/icu-config
+	$(INSTALL_DATA) $(top_builddir)/config/Makefile.inc $(DESTDIR)$(pkglibdir)/Makefile.inc
+	cd $(DESTDIR)$(pkglibdir)/..; \
+	    $(RM) current && ln -s $(VERSION) current; \
+	    $(RM) Makefile.inc && ln -s current/Makefile.inc Makefile.inc
+
+ifeq ($(DOXYGEN),)
+install-doc:
+else
+install-doc: doc
+	$(RM) -r $(DESTDIR)$(docdir)/$(docsubdir)
+	$(MKINSTALLDIRS) $(DESTDIR)$(docdir)/$(docsubdir)
+	$(INSTALL_DATA) doc/html/* $(DESTDIR)$(docdir)/$(docsubdir)
+endif
+
+$(DESTDIR)$(pkglibdir)/%: $(top_srcdir)/../data/%
+	$(INSTALL_DATA) $< $@
+
+dist-local:
+
+clean-local:
+	test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
+	$(RMV) Doxyfile doc
+
+distclean-local: clean-local
+	$(RMV) Makefile config/Makefile icudefs.mk
+	$(RMV) $(top_builddir)/config/Makefile.inc $(top_builddir)/config/icu-config
+	$(RMV) config.cache config.log config.status
+
+check-local:
+
+#$(srcdir)/configure : $(srcdir)/configure.in $(top_srcdir)/aclocal.m4
+#	cd $(srcdir) && $(AUTOCONF)
+
+icudefs.mk: $(srcdir)/icudefs.mk.in  $(top_builddir)/config.status
+	cd $(top_builddir) \
+		&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+Makefile: $(srcdir)/Makefile.in icudefs.mk $(top_builddir)/config.status
+	cd $(top_builddir) \
+		&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+$(top_builddir)/config/Makefile.inc: $(srcdir)/config/Makefile.inc.in  $(top_builddir)/config.status
+	cd $(top_builddir) \
+		&& CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+$(top_builddir)/config/icu-config: $(top_builddir)/Makefile $(top_srcdir)/config/icu-config-top $(top_srcdir)/config/icu-config-bottom $(top_builddir)/config/Makefile.inc @platform_make_fragment@ $(top_srcdir)/config/make2sh.sed
+	-$(RMV) $@
+	$(INSTALL_SCRIPT) $(top_srcdir)/config/icu-config-top $@
+	@echo "# Following from @platform_make_fragment@" >> $@
+	sed -f $(top_srcdir)/config/make2sh.sed < $(top_builddir)/config/Makefile.inc | grep -v '#M#' | uniq >> $@
+	sed -f $(top_srcdir)/config/make2sh.sed < @platform_make_fragment@ | grep -v '#M#' | uniq >> $@
+	cat $(top_srcdir)/config/icu-config-bottom >> $@
+	echo "# Rebuilt on "`date` >> $@
+
+config.status: $(srcdir)/configure $(srcdir)/common/unicode/uversion.h
+	@echo
+	@echo
+	@echo "*** config.status has become stale ***"
+	@echo "   'configure' and/or 'uversion.h' have changed, please"
+	@echo "  do 'runConfigureICU' (or 'configure') again, as per"
+	@echo "  the readme.html."
+	@echo
+	@echo
+	exit 1
+
+
+install-manx: $(MANX_FILES)
+	$(MKINSTALLDIRS) $(DESTDIR)$(mandir)/man$(SECTION)
+	$(INSTALL_DATA) $? $(DESTDIR)$(mandir)/man$(SECTION)
+
+config/%.$(SECTION): $(srcdir)/config/%.$(SECTION).in
+	cd $(top_builddir) \
+	 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
diff --git a/source/acconfig.h b/source/acconfig.h
new file mode 100644
index 0000000..76fed55
--- /dev/null
+++ b/source/acconfig.h
@@ -0,0 +1,29 @@
+/* Copyright (c) 1999-2000, International Business Machines Corporation and
+   others. All Rights Reserved. */
+/* Define to signed char if not in <sys/types.h> */
+#undef int8_t
+
+/* Define to unsigned char if not in <sys/types.h> */
+#undef uint8_t 
+
+/* Define to signed short if not in <sys/types.h> */
+#undef int16_t 
+
+/* Define to unsigned short if not in <sys/types.h> */
+#undef uint16_t 
+
+/* Define to signed long if not in <sys/types.h> */
+#undef int32_t 
+
+/* Define to unsigned long if not in <sys/types.h> */
+#undef uint32_t 
+
+/* Define to signed char if not in <sys/types.h> */
+#undef bool_t 
+
+/* Define if your system has <wchar.h> */
+#undef HAVE_WCHAR_H
+
+/* Define to the size of wchar_t */
+#undef SIZEOF_WCHAR_T
+
diff --git a/source/aclocal.m4 b/source/aclocal.m4
new file mode 100644
index 0000000..f95dd61
--- /dev/null
+++ b/source/aclocal.m4
@@ -0,0 +1,313 @@
+dnl aclocal.m4 for ICU
+dnl Copyright (c) 1999-2005, International Business Machines Corporation and
+dnl others. All Rights Reserved.
+dnl Stephen F. Booth
+
+dnl @TOP@
+
+dnl ICU_CHECK_MH_FRAG
+AC_DEFUN(ICU_CHECK_MH_FRAG, [
+	AC_CACHE_CHECK(
+		[which Makefile fragment to use],
+		[icu_cv_host_frag],
+		[
+case "${host}" in
+*-*-solaris*)
+	if test "$GCC" = yes; then	
+		icu_cv_host_frag=mh-solaris-gcc 
+	else
+		icu_cv_host_frag=mh-solaris
+	fi ;;
+alpha*-*-linux-gnu)
+	if test "$GCC" = yes; then
+		icu_cv_host_frag=mh-alpha-linux-gcc
+	else  
+		icu_cv_host_frag=mh-alpha-linux-cc
+	fi ;;
+powerpc*-*-linux*)
+	if test "$GCC" = yes; then
+	  	icu_cv_host_frag=mh-linux
+	else
+	  	icu_cv_host_frag=mh-linux-va
+	fi ;;
+*-*-linux*) icu_cv_host_frag=mh-linux ;;
+*-*-cygwin)
+	if test "$GCC" = yes; then
+	  	icu_cv_host_frag=mh-cygwin
+	else
+	  	icu_cv_host_frag=mh-cygwin-msvc
+	fi ;;
+*-*-mingw32)
+	if test "$GCC" = yes; then
+	  	icu_cv_host_frag=mh-mingw
+	else
+	  	icu_cv_host_frag=mh-cygwin-msvc
+	fi ;;
+*-*-*bsd*) 	icu_cv_host_frag=mh-bsd-gcc ;;
+*-*-aix*)
+	if test "$GCC" = yes; then
+		icu_cv_host_frag=mh-aix-gcc
+	else
+		if test -n "`$CXX --help 2>&1 | grep 'IBM C and C++ Compilers$'`"; then
+			icu_cv_host_frag=mh-aix
+		else
+			icu_cv_host_frag=mh-aix-va
+		fi
+	fi ;;
+*-*-hpux*)
+	if test "$GCC" = yes; then
+		icu_cv_host_frag=mh-hpux-gcc
+	else
+		case "$CXX" in
+		*aCC)    icu_cv_host_frag=mh-hpux-acc ;;
+		*CC)     icu_cv_host_frag=mh-hpux-cc ;;
+		esac
+	fi ;;
+*-*ibm-openedition*|*-*-os390*)	icu_cv_host_frag=mh-os390 ;;
+*-*-os400*)	icu_cv_host_frag=mh-os400 ;;
+*-apple-rhapsody*)	icu_cv_host_frag=mh-darwin ;;
+*-apple-darwin*)	icu_cv_host_frag=mh-darwin ;;
+*-*-beos)	icu_cv_host_frag=mh-beos ;;
+*-*-irix*)	icu_cv_host_frag=mh-irix ;;
+*-dec-osf*) icu_cv_host_frag=mh-alpha-osf ;;
+*-*-nto*)	icu_cv_host_frag=mh-qnx ;;
+*-ncr-*)	icu_cv_host_frag=mh-mpras ;;
+*-sequent-*) 	icu_cv_host_frag=mh-ptx ;;
+*) 		icu_cv_host_frag=mh-unknown ;;
+esac
+		]
+	)
+])
+
+dnl ICU_CONDITIONAL - similar example taken from Automake 1.4
+AC_DEFUN(ICU_CONDITIONAL,
+[AC_SUBST($1_TRUE)
+if $2; then
+  $1_TRUE=
+else
+  $1_TRUE='#'
+fi])
+
+dnl AC_SEARCH_LIBS_FIRST(FUNCTION, SEARCH-LIBS [, ACTION-IF-FOUND
+dnl            [, ACTION-IF-NOT-FOUND [, OTHER-LIBRARIES]]])
+dnl Search for a library defining FUNC, then see if it's not already available.
+ 
+AC_DEFUN(AC_SEARCH_LIBS_FIRST,
+[AC_PREREQ([2.13])
+AC_CACHE_CHECK([for library containing $1], [ac_cv_search_$1],
+[ac_func_search_save_LIBS="$LIBS"
+ac_cv_search_$1="no"
+for i in $2; do
+LIBS="-l$i $5 $ac_func_search_save_LIBS"
+AC_TRY_LINK_FUNC([$1],
+[ac_cv_search_$1="-l$i"
+break])
+done
+if test "$ac_cv_search_$1" = "no"; then
+AC_TRY_LINK_FUNC([$1], [ac_cv_search_$1="none required"])
+fi
+LIBS="$ac_func_search_save_LIBS"])
+if test "$ac_cv_search_$1" != "no"; then
+  test "$ac_cv_search_$1" = "none required" || LIBS="$ac_cv_search_$1 $LIBS"
+  $3
+else :
+  $4
+fi])
+
+dnl Check if we can build and use 64-bit libraries
+AC_DEFUN(AC_CHECK_64BIT_LIBS,
+[
+    AC_ARG_ENABLE(64bit-libs,
+        [  --enable-64bit-libs     build 64-bit libraries [default=yes]],
+        [ENABLE_64BIT_LIBS=${enableval}],
+        [ENABLE_64BIT_LIBS=yes]
+    )
+    dnl These results can't be cached because is sets compiler flags.
+    AC_MSG_CHECKING([for 64-bit executable support])
+    if test "$ENABLE_64BIT_LIBS" != no; then
+        case "${host}" in
+        *-*-solaris*)
+            SPARCV9=`isainfo -n 2>&1 | grep sparcv9`
+            if test "$GCC" = yes; then
+                # We could add a check for -m64 depending on the gcc version.
+                ENABLE_64BIT_LIBS=no
+            else
+                SOL64=`$CXX -xarch=v9 2>&1 && $CC -xarch=v9 2>&1 | grep -v usage:`
+                if test -z "$SOL64" && test -n "$SPARCV9"; then
+                    CFLAGS="${CFLAGS} -xtarget=ultra -xarch=v9"
+                    CXXFLAGS="${CXXFLAGS} -xtarget=ultra -xarch=v9"
+                    LDFLAGS="${LDFLAGS} -xtarget=ultra -xarch=v9"
+                    ENABLE_64BIT_LIBS=yes
+                else
+                    ENABLE_64BIT_LIBS=no
+                fi
+            fi
+            ;;
+        ia64-*-linux*)
+            if test "$GCC" = yes; then
+                # gcc compiler support
+                if test -n "`$CXX -dumpspecs 2>&1 && $CC -dumpspecs 2>&1 | grep -v __LP64__`"; then
+                    ENABLE_64BIT_LIBS=yes
+                else
+                    ENABLE_64BIT_LIBS=no
+                fi
+            else
+                # check for ecc/ecpc compiler support
+                if test -n "`$CXX --help 2>&1 && $CC --help 2>&1 | grep -v Intel`"; then
+                    if test -n "`$CXX --help 2>&1 && $CC --help 2>&1 | grep -v Itanium`"; then
+                        ENABLE_64BIT_LIBS=yes
+                    else
+                        ENABLE_64BIT_LIBS=no
+                    fi
+                else
+                    # unknown
+                    ENABLE_64BIT_LIBS=no
+                fi
+            fi
+            ;;
+        x86_64-*-linux*)
+            if test "$GCC" = yes; then
+                if test -n "`$CXX -dumpspecs 2>&1 && $CC -dumpspecs 2>&1 | grep -v __LP64__`"; then
+                    ENABLE_64BIT_LIBS=yes
+                else
+                    ENABLE_64BIT_LIBS=no
+                fi
+            else
+                # unknown
+                ENABLE_64BIT_LIBS=no
+            fi
+            ;;
+        *-*-aix*|powerpc64-*-linux*)
+            if test "$ac_cv_prog_gcc" = no; then
+                # Note: Have not tested 64-bitness with gcc.
+                # Maybe the flag "-maix64" could be used with gcc?
+                OLD_CFLAGS="${CFLAGS}"
+                OLD_CXXFLAGS="${CXXFLAGS}"
+                OLD_LDFLAGS="${LDFLAGS}"
+                CFLAGS="${CFLAGS} -q64"
+                CXXFLAGS="${CXXFLAGS} -q64"
+                LDFLAGS="${LDFLAGS} -q64"
+                AC_TRY_RUN(int main(void) {return 0;},
+                   ENABLE_64BIT_LIBS=yes, ENABLE_64BIT_LIBS=no, ENABLE_64BIT_LIBS=no)
+                if test "$ENABLE_64BIT_LIBS" = no; then
+                    CFLAGS="${OLD_CFLAGS}"
+                    CXXFLAGS="${OLD_CXXFLAGS}"
+                    LDFLAGS="${OLD_LDFLAGS}"
+                else
+                    case "${host}" in
+                    *-*-aix*)
+                        ARFLAGS="${ARFLAGS} -X64"
+                    esac
+                fi
+            fi
+            ;;
+        *-*-hpux*)
+            dnl First we try the newer +DD64, if that doesn't work,
+            dnl try other options.
+
+            OLD_CFLAGS="${CFLAGS}"
+            OLD_CXXFLAGS="${CXXFLAGS}"
+            CFLAGS="${CFLAGS} +DD64"
+            CXXFLAGS="${CXXFLAGS} +DD64"
+            AC_TRY_RUN(int main(void) {return 0;},
+                ENABLE_64BIT_LIBS=yes, ENABLE_64BIT_LIBS=no, ENABLE_64BIT_LIBS=no)
+            if test "$ENABLE_64BIT_LIBS" = no; then
+                CFLAGS="${OLD_CFLAGS}"
+                CXXFLAGS="${OLD_CXXFLAGS}"
+                CFLAGS="${CFLAGS} +DA2.0W"
+                CXXFLAGS="${CXXFLAGS} +DA2.0W"
+                AC_TRY_RUN(int main(void) {return 0;},
+                    ENABLE_64BIT_LIBS=yes, ENABLE_64BIT_LIBS=no, ENABLE_64BIT_LIBS=no)
+                if test "$ENABLE_64BIT_LIBS" = no; then
+                    CFLAGS="${OLD_CFLAGS}"
+                    CXXFLAGS="${OLD_CXXFLAGS}"
+                fi
+            fi
+            ;;
+        *)
+            ENABLE_64BIT_LIBS=no
+            ;;
+        esac
+    fi
+    dnl Individual tests that fail should reset their own flags.
+    AC_MSG_RESULT($ENABLE_64BIT_LIBS)
+])
+
+dnl Strict compilation options.
+AC_DEFUN(AC_CHECK_STRICT_COMPILE,
+[
+    AC_MSG_CHECKING([whether strict compiling is on])
+    AC_ARG_ENABLE(strict,[  --enable-strict         compile with strict compiler options [default=no]], [
+        if test "$enableval" = no
+        then
+            ac_use_strict_options=no
+        else
+            ac_use_strict_options=yes
+        fi
+      ], [ac_use_strict_options=no])
+    AC_MSG_RESULT($ac_use_strict_options)
+
+    if test "$ac_use_strict_options" = yes
+    then
+        if test "$GCC" = yes
+        then
+            CFLAGS="$CFLAGS -Wall -ansi -pedantic -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings -Winline -Wno-long-long -fno-strict-aliasing"
+            case "${host}" in
+            *-*-solaris*)
+                CFLAGS="$CFLAGS -D__STDC__=0";;
+            esac
+        else
+            case "${host}" in
+            *-*-cygwin)
+                if test "`$CC /help 2>&1 | head -c9`" = "Microsoft"
+                then
+                    CFLAGS="$CFLAGS /W4"
+                fi
+            esac
+        fi
+        if test "$GXX" = yes
+        then
+            CXXFLAGS="$CXXFLAGS -W -Wall -ansi -pedantic -Wpointer-arith -Wwrite-strings -Winline -Wno-long-long"
+            case "${host}" in
+            *-*-solaris*)
+                CXXFLAGS="$CXXFLAGS -D__STDC__=0";;
+            esac
+        else
+            case "${host}" in
+            *-*-cygwin)
+                if test "`$CXX /help 2>&1 | head -c9`" = "Microsoft"
+                then
+                    CXXFLAGS="$CXXFLAGS /W4"
+                fi
+            esac
+        fi
+    fi
+])
+
+dnl Define a sizeof checking macro that is a bit better than autoconf's
+dnl builtin (and heavily based on it, of course). The new macro is
+dnl AC_DO_CHECK_SIZEOF(TYPE [, CROSS_SIZE [, INCLUDES])
+AC_DEFUN(AC_DO_CHECK_SIZEOF,
+[changequote(<<, >>)dnl
+dnl The name to #define.
+define(<<AC_TYPE_NAME>>, translit(sizeof_$1, [a-z *], [A-Z_P]))dnl
+dnl The cache variable name.
+define(<<AC_CV_NAME>>, translit(ac_cv_sizeof_$1, [ *], [_p]))dnl
+changequote([, ])dnl
+AC_MSG_CHECKING(size of $1)
+AC_CACHE_VAL(AC_CV_NAME,
+[AC_TRY_RUN($3
+[#include <stdio.h>
+main()
+{
+  FILE *f=fopen("conftestval", "w");
+  if (!f) exit(1);
+  fprintf(f, "%d\n", sizeof($1));
+  exit(0);
+}], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, ifelse([$2], , , AC_CV_NAME=$2))])dnl
+AC_MSG_RESULT($AC_CV_NAME)
+AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME)
+undefine([AC_TYPE_NAME])dnl
+undefine([AC_CV_NAME])dnl
+])
+
diff --git a/source/allinone/.cvsignore b/source/allinone/.cvsignore
new file mode 100644
index 0000000..4899cad
--- /dev/null
+++ b/source/allinone/.cvsignore
@@ -0,0 +1,3 @@
+*.ncb
+*.opt
+*.suo
\ No newline at end of file
diff --git a/source/allinone/allinone.sln b/source/allinone/allinone.sln
new file mode 100644
index 0000000..49c1019
--- /dev/null
+++ b/source/allinone/allinone.sln
@@ -0,0 +1,360 @@
+Microsoft Visual Studio Solution File, Format Version 8.00
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "cintltst", "..\test\cintltst\cintltst.vcproj", "{3D1246AE-1B32-479B-BECA-AEFA97BE2321}"
+	ProjectSection(ProjectDependencies) = postProject
+		{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47} = {ECA6B435-B4FA-4F9F-BF95-F451D078FC47}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "common", "..\common\common.vcproj", "{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}"
+	ProjectSection(ProjectDependencies) = postProject
+		{203EC78A-0531-43F0-A636-285439BDE025} = {203EC78A-0531-43F0-A636-285439BDE025}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ctestfw", "..\tools\ctestfw\ctestfw.vcproj", "{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "decmn", "..\tools\gencmn\decmn.vcproj", "{20869594-A3DD-4A75-8068-99B03A5CF4E4}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "derb", "..\tools\genrb\derb.vcproj", "{D3065ADB-8820-4CC7-9B6C-9510833961A3}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genbrk", "..\tools\genbrk\genbrk.vcproj", "{C2BE5000-7501-4E87-9724-B8D82494FAE6}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genccode", "..\tools\genccode\genccode.vcproj", "{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gencmn", "..\tools\gencmn\gencmn.vcproj", "{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gencnval", "..\tools\gencnval\gencnval.vcproj", "{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gennames", "..\tools\gennames\gennames.vcproj", "{F5281B04-A9E0-4680-BBA8-1D7F7D115458}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gennorm", "..\tools\gennorm\gennorm.vcproj", "{F5213103-6CBE-46E6-B4CC-2570B6837D86}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genpname", "..\tools\genpname\genpname.vcproj", "{DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genprops", "..\tools\genprops\genprops.vcproj", "{6F744648-D15F-478A-90C6-58E353B5DDB3}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genrb", "..\tools\genrb\genrb.vcproj", "{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}"
+	ProjectSection(ProjectDependencies) = postProject
+		{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gentest", "..\tools\gentest\gentest.vcproj", "{77C78066-746F-4EA6-B3FE-B8C8A4A97891}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genuca", "..\tools\genuca\genuca.vcproj", "{86829694-A375-4C58-B4EA-96EF514E3225}"
+	ProjectSection(ProjectDependencies) = postProject
+		{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "i18n", "..\i18n\i18n.vcproj", "{0178B127-6269-407D-B112-93877BB62776}"
+	ProjectSection(ProjectDependencies) = postProject
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "intltest", "..\test\intltest\intltest.vcproj", "{73632960-B3A6-464D-83A3-4B43365F19B8}"
+	ProjectSection(ProjectDependencies) = postProject
+		{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47} = {ECA6B435-B4FA-4F9F-BF95-F451D078FC47}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "layout", "..\layout\layout.vcproj", "{C920062A-0647-4553-A3B2-37C58065664B}"
+	ProjectSection(ProjectDependencies) = postProject
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "layoutex", "..\layoutex\layoutex.vcproj", "{37FC2C7F-1904-4811-8955-2F478830EAD1}"
+	ProjectSection(ProjectDependencies) = postProject
+		{C920062A-0647-4553-A3B2-37C58065664B} = {C920062A-0647-4553-A3B2-37C58065664B}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "makeconv", "..\tools\makeconv\makeconv.vcproj", "{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "makedata", "..\data\makedata.vcproj", "{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}"
+	ProjectSection(ProjectDependencies) = postProject
+		{C2BE5000-7501-4E87-9724-B8D82494FAE6} = {C2BE5000-7501-4E87-9724-B8D82494FAE6}
+		{F5213103-6CBE-46E6-B4CC-2570B6837D86} = {F5213103-6CBE-46E6-B4CC-2570B6837D86}
+		{F5281B04-A9E0-4680-BBA8-1D7F7D115458} = {F5281B04-A9E0-4680-BBA8-1D7F7D115458}
+		{97521D06-EC47-45D4-8BD0-9E16B3F93B2A} = {97521D06-EC47-45D4-8BD0-9E16B3F93B2A}
+		{DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB} = {DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB}
+		{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
+		{8B41752B-5A52-41E4-B7E0-07921C0CC6BF} = {8B41752B-5A52-41E4-B7E0-07921C0CC6BF}
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C} = {F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}
+		{6F744648-D15F-478A-90C6-58E353B5DDB3} = {6F744648-D15F-478A-90C6-58E353B5DDB3}
+		{DB312A49-12A9-4E07-9E96-451DC2D8FF61} = {DB312A49-12A9-4E07-9E96-451DC2D8FF61}
+		{DB312A49-12A9-4E07-9E96-451DC2D8FF62} = {DB312A49-12A9-4E07-9E96-451DC2D8FF62}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{77C78066-746F-4EA6-B3FE-B8C8A4A97891} = {77C78066-746F-4EA6-B3FE-B8C8A4A97891}
+		{6FC24387-370C-4561-9582-7A819749E2C5} = {6FC24387-370C-4561-9582-7A819749E2C5}
+		{203EC78A-0531-43F0-A636-285439BDE025} = {203EC78A-0531-43F0-A636-285439BDE025}
+		{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F} = {A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}
+		{20869594-A3DD-4A75-8068-99B03A5CF4E4} = {20869594-A3DD-4A75-8068-99B03A5CF4E4}
+		{86829694-A375-4C58-B4EA-96EF514E3225} = {86829694-A375-4C58-B4EA-96EF514E3225}
+		{631C23CE-6C1D-4875-88F0-85E0A42B36EA} = {631C23CE-6C1D-4875-88F0-85E0A42B36EA}
+		{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547} = {FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}
+		{4C8454FE-81D3-4CA3-9927-29BA96F03DAC} = {4C8454FE-81D3-4CA3-9927-29BA96F03DAC}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pkgdata", "..\tools\pkgdata\pkgdata.vcproj", "{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F} = {A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}
+		{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547} = {FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "stubdata", "..\stubdata\stubdata.vcproj", "{203EC78A-0531-43F0-A636-285439BDE025}"
+	ProjectSection(ProjectDependencies) = postProject
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "toolutil", "..\tools\toolutil\toolutil.vcproj", "{6B231032-3CB5-4EED-9210-810D666A23A0}"
+	ProjectSection(ProjectDependencies) = postProject
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "uconv", "..\extra\uconv\uconv.vcproj", "{DBA4088D-F6F9-4F8F-8820-082A4765C16C}"
+	ProjectSection(ProjectDependencies) = postProject
+		{97521D06-EC47-45D4-8BD0-9E16B3F93B2A} = {97521D06-EC47-45D4-8BD0-9E16B3F93B2A}
+		{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+		{4C8454FE-81D3-4CA3-9927-29BA96F03DAC} = {4C8454FE-81D3-4CA3-9927-29BA96F03DAC}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "io", "..\io\io.vcproj", "{C2B04507-2521-4801-BF0D-5FD79D6D518C}"
+	ProjectSection(ProjectDependencies) = postProject
+		{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gensprep", "..\tools\gensprep\gensprep.vcproj", "{631C23CE-6C1D-4875-88F0-85E0A42B36EA}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "icuswap", "..\tools\icuswap\icuswap.vcproj", "{6FC24387-370C-4561-9582-7A819749E2C5}"
+	ProjectSection(ProjectDependencies) = postProject
+		{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "iotest", "..\test\iotest\iotest.vcproj", "{E4993E82-D68A-46CA-BAE0-9D35E172E46F}"
+	ProjectSection(ProjectDependencies) = postProject
+		{C2B04507-2521-4801-BF0D-5FD79D6D518C} = {C2B04507-2521-4801-BF0D-5FD79D6D518C}
+		{0178B127-6269-407D-B112-93877BB62776} = {0178B127-6269-407D-B112-93877BB62776}
+		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47} = {ECA6B435-B4FA-4F9F-BF95-F451D078FC47}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "genbidi", "..\tools\genbidi\genbidi.vcproj", "{DB312A49-12A9-4E07-9E96-451DC2D8FF62}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "gencase", "..\tools\gencase\gencase.vcproj", "{DB312A49-12A9-4E07-9E96-451DC2D8FF61}"
+	ProjectSection(ProjectDependencies) = postProject
+		{6B231032-3CB5-4EED-9210-810D666A23A0} = {6B231032-3CB5-4EED-9210-810D666A23A0}
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D} = {73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}
+	EndProjectSection
+EndProject
+Global
+	GlobalSection(SolutionConfiguration) = preSolution
+		Debug = Debug
+		Release = Release
+	EndGlobalSection
+	GlobalSection(ProjectConfiguration) = postSolution
+		{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Debug.ActiveCfg = Debug|Win32
+		{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Debug.Build.0 = Debug|Win32
+		{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Release.ActiveCfg = Release|Win32
+		{3D1246AE-1B32-479B-BECA-AEFA97BE2321}.Release.Build.0 = Release|Win32
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Debug.ActiveCfg = Debug|Win32
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Debug.Build.0 = Debug|Win32
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Release.ActiveCfg = Release|Win32
+		{73C0A65B-D1F2-4DE1-B3A6-15DAD2C23F3D}.Release.Build.0 = Release|Win32
+		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Debug.ActiveCfg = Debug|Win32
+		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Debug.Build.0 = Debug|Win32
+		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Release.ActiveCfg = Release|Win32
+		{ECA6B435-B4FA-4F9F-BF95-F451D078FC47}.Release.Build.0 = Release|Win32
+		{20869594-A3DD-4A75-8068-99B03A5CF4E4}.Debug.ActiveCfg = Debug|Win32
+		{20869594-A3DD-4A75-8068-99B03A5CF4E4}.Debug.Build.0 = Debug|Win32
+		{20869594-A3DD-4A75-8068-99B03A5CF4E4}.Release.ActiveCfg = Release|Win32
+		{20869594-A3DD-4A75-8068-99B03A5CF4E4}.Release.Build.0 = Release|Win32
+		{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Debug.ActiveCfg = Debug|Win32
+		{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Debug.Build.0 = Debug|Win32
+		{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Release.ActiveCfg = Release|Win32
+		{D3065ADB-8820-4CC7-9B6C-9510833961A3}.Release.Build.0 = Release|Win32
+		{C2BE5000-7501-4E87-9724-B8D82494FAE6}.Debug.ActiveCfg = Debug|Win32
+		{C2BE5000-7501-4E87-9724-B8D82494FAE6}.Debug.Build.0 = Debug|Win32
+		{C2BE5000-7501-4E87-9724-B8D82494FAE6}.Release.ActiveCfg = Release|Win32
+		{C2BE5000-7501-4E87-9724-B8D82494FAE6}.Release.Build.0 = Release|Win32
+		{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Debug.ActiveCfg = Debug|Win32
+		{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Debug.Build.0 = Debug|Win32
+		{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Release.ActiveCfg = Release|Win32
+		{FDD3C4F2-9805-44EB-9A77-BC1C1C95B547}.Release.Build.0 = Release|Win32
+		{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Debug.ActiveCfg = Debug|Win32
+		{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Debug.Build.0 = Debug|Win32
+		{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Release.ActiveCfg = Release|Win32
+		{A8D36F8D-09E6-4174-91C3-7BEAA9C3F04F}.Release.Build.0 = Release|Win32
+		{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Debug.ActiveCfg = Debug|Win32
+		{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Debug.Build.0 = Debug|Win32
+		{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Release.ActiveCfg = Release|Win32
+		{8B41752B-5A52-41E4-B7E0-07921C0CC6BF}.Release.Build.0 = Release|Win32
+		{F5281B04-A9E0-4680-BBA8-1D7F7D115458}.Debug.ActiveCfg = Debug|Win32
+		{F5281B04-A9E0-4680-BBA8-1D7F7D115458}.Debug.Build.0 = Debug|Win32
+		{F5281B04-A9E0-4680-BBA8-1D7F7D115458}.Release.ActiveCfg = Release|Win32
+		{F5281B04-A9E0-4680-BBA8-1D7F7D115458}.Release.Build.0 = Release|Win32
+		{F5213103-6CBE-46E6-B4CC-2570B6837D86}.Debug.ActiveCfg = Debug|Win32
+		{F5213103-6CBE-46E6-B4CC-2570B6837D86}.Debug.Build.0 = Debug|Win32
+		{F5213103-6CBE-46E6-B4CC-2570B6837D86}.Release.ActiveCfg = Release|Win32
+		{F5213103-6CBE-46E6-B4CC-2570B6837D86}.Release.Build.0 = Release|Win32
+		{DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB}.Debug.ActiveCfg = Debug|Win32
+		{DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB}.Debug.Build.0 = Debug|Win32
+		{DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB}.Release.ActiveCfg = Release|Win32
+		{DBC0AF0B-B9FF-4B23-905B-4D4CDC2A91CB}.Release.Build.0 = Release|Win32
+		{6F744648-D15F-478A-90C6-58E353B5DDB3}.Debug.ActiveCfg = Debug|Win32
+		{6F744648-D15F-478A-90C6-58E353B5DDB3}.Debug.Build.0 = Debug|Win32
+		{6F744648-D15F-478A-90C6-58E353B5DDB3}.Release.ActiveCfg = Release|Win32
+		{6F744648-D15F-478A-90C6-58E353B5DDB3}.Release.Build.0 = Release|Win32
+		{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Debug.ActiveCfg = Debug|Win32
+		{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Debug.Build.0 = Debug|Win32
+		{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Release.ActiveCfg = Release|Win32
+		{97521D06-EC47-45D4-8BD0-9E16B3F93B2A}.Release.Build.0 = Release|Win32
+		{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Debug.ActiveCfg = Debug|Win32
+		{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Debug.Build.0 = Debug|Win32
+		{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Release.ActiveCfg = Release|Win32
+		{77C78066-746F-4EA6-B3FE-B8C8A4A97891}.Release.Build.0 = Release|Win32
+		{86829694-A375-4C58-B4EA-96EF514E3225}.Debug.ActiveCfg = Debug|Win32
+		{86829694-A375-4C58-B4EA-96EF514E3225}.Debug.Build.0 = Debug|Win32
+		{86829694-A375-4C58-B4EA-96EF514E3225}.Release.ActiveCfg = Release|Win32
+		{86829694-A375-4C58-B4EA-96EF514E3225}.Release.Build.0 = Release|Win32
+		{0178B127-6269-407D-B112-93877BB62776}.Debug.ActiveCfg = Debug|Win32
+		{0178B127-6269-407D-B112-93877BB62776}.Debug.Build.0 = Debug|Win32
+		{0178B127-6269-407D-B112-93877BB62776}.Release.ActiveCfg = Release|Win32
+		{0178B127-6269-407D-B112-93877BB62776}.Release.Build.0 = Release|Win32
+		{73632960-B3A6-464D-83A3-4B43365F19B8}.Debug.ActiveCfg = Debug|Win32
+		{73632960-B3A6-464D-83A3-4B43365F19B8}.Debug.Build.0 = Debug|Win32
+		{73632960-B3A6-464D-83A3-4B43365F19B8}.Release.ActiveCfg = Release|Win32
+		{73632960-B3A6-464D-83A3-4B43365F19B8}.Release.Build.0 = Release|Win32
+		{C920062A-0647-4553-A3B2-37C58065664B}.Debug.ActiveCfg = Debug|Win32
+		{C920062A-0647-4553-A3B2-37C58065664B}.Debug.Build.0 = Debug|Win32
+		{C920062A-0647-4553-A3B2-37C58065664B}.Release.ActiveCfg = Release|Win32
+		{C920062A-0647-4553-A3B2-37C58065664B}.Release.Build.0 = Release|Win32
+		{37FC2C7F-1904-4811-8955-2F478830EAD1}.Debug.ActiveCfg = Debug|Win32
+		{37FC2C7F-1904-4811-8955-2F478830EAD1}.Debug.Build.0 = Debug|Win32
+		{37FC2C7F-1904-4811-8955-2F478830EAD1}.Release.ActiveCfg = Release|Win32
+		{37FC2C7F-1904-4811-8955-2F478830EAD1}.Release.Build.0 = Release|Win32
+		{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Debug.ActiveCfg = Debug|Win32
+		{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Debug.Build.0 = Debug|Win32
+		{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Release.ActiveCfg = Release|Win32
+		{F5AD9738-1A3D-4906-B9C4-A7D9CE33DC2C}.Release.Build.0 = Release|Win32
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Debug.ActiveCfg = Debug|Win32
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Debug.Build.0 = Debug|Win32
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Release.ActiveCfg = Release|Win32
+		{D9DF7F2F-93B7-4810-B5CD-96F4F33C079B}.Release.Build.0 = Release|Win32
+		{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Debug.ActiveCfg = Debug|Win32
+		{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Debug.Build.0 = Debug|Win32
+		{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Release.ActiveCfg = Release|Win32
+		{4C8454FE-81D3-4CA3-9927-29BA96F03DAC}.Release.Build.0 = Release|Win32
+		{203EC78A-0531-43F0-A636-285439BDE025}.Debug.ActiveCfg = Debug|Win32
+		{203EC78A-0531-43F0-A636-285439BDE025}.Debug.Build.0 = Debug|Win32
+		{203EC78A-0531-43F0-A636-285439BDE025}.Release.ActiveCfg = Release|Win32
+		{203EC78A-0531-43F0-A636-285439BDE025}.Release.Build.0 = Release|Win32
+		{6B231032-3CB5-4EED-9210-810D666A23A0}.Debug.ActiveCfg = Debug|Win32
+		{6B231032-3CB5-4EED-9210-810D666A23A0}.Debug.Build.0 = Debug|Win32
+		{6B231032-3CB5-4EED-9210-810D666A23A0}.Release.ActiveCfg = Release|Win32
+		{6B231032-3CB5-4EED-9210-810D666A23A0}.Release.Build.0 = Release|Win32
+		{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Debug.ActiveCfg = Debug|Win32
+		{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Debug.Build.0 = Debug|Win32
+		{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Release.ActiveCfg = Release|Win32
+		{DBA4088D-F6F9-4F8F-8820-082A4765C16C}.Release.Build.0 = Release|Win32
+		{C2B04507-2521-4801-BF0D-5FD79D6D518C}.Debug.ActiveCfg = Debug|Win32
+		{C2B04507-2521-4801-BF0D-5FD79D6D518C}.Debug.Build.0 = Debug|Win32
+		{C2B04507-2521-4801-BF0D-5FD79D6D518C}.Release.ActiveCfg = Release|Win32
+		{C2B04507-2521-4801-BF0D-5FD79D6D518C}.Release.Build.0 = Release|Win32
+		{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Debug.ActiveCfg = Debug|Win32
+		{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Debug.Build.0 = Debug|Win32
+		{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Release.ActiveCfg = Release|Win32
+		{631C23CE-6C1D-4875-88F0-85E0A42B36EA}.Release.Build.0 = Release|Win32
+		{6FC24387-370C-4561-9582-7A819749E2C5}.Debug.ActiveCfg = Debug|Win32
+		{6FC24387-370C-4561-9582-7A819749E2C5}.Debug.Build.0 = Debug|Win32
+		{6FC24387-370C-4561-9582-7A819749E2C5}.Release.ActiveCfg = Release|Win32
+		{6FC24387-370C-4561-9582-7A819749E2C5}.Release.Build.0 = Release|Win32
+		{E4993E82-D68A-46CA-BAE0-9D35E172E46F}.Debug.ActiveCfg = Debug|Win32
+		{E4993E82-D68A-46CA-BAE0-9D35E172E46F}.Debug.Build.0 = Debug|Win32
+		{E4993E82-D68A-46CA-BAE0-9D35E172E46F}.Release.ActiveCfg = Release|Win32
+		{E4993E82-D68A-46CA-BAE0-9D35E172E46F}.Release.Build.0 = Release|Win32
+		{DB312A49-12A9-4E07-9E96-451DC2D8FF62}.Debug.ActiveCfg = Debug|Win32
+		{DB312A49-12A9-4E07-9E96-451DC2D8FF62}.Debug.Build.0 = Debug|Win32
+		{DB312A49-12A9-4E07-9E96-451DC2D8FF62}.Release.ActiveCfg = Release|Win32
+		{DB312A49-12A9-4E07-9E96-451DC2D8FF62}.Release.Build.0 = Release|Win32
+		{DB312A49-12A9-4E07-9E96-451DC2D8FF61}.Debug.ActiveCfg = Debug|Win32
+		{DB312A49-12A9-4E07-9E96-451DC2D8FF61}.Debug.Build.0 = Debug|Win32
+		{DB312A49-12A9-4E07-9E96-451DC2D8FF61}.Release.ActiveCfg = Release|Win32
+		{DB312A49-12A9-4E07-9E96-451DC2D8FF61}.Release.Build.0 = Release|Win32
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+	EndGlobalSection
+	GlobalSection(ExtensibilityAddIns) = postSolution
+	EndGlobalSection
+EndGlobal
diff --git a/source/common/.cvsignore b/source/common/.cvsignore
new file mode 100644
index 0000000..fd97528
--- /dev/null
+++ b/source/common/.cvsignore
@@ -0,0 +1,9 @@
+*.d
+libicu*.*
+Debug
+Release
+Makefile
+icucfg.h
+*.ao
+*.o
+*.plg
diff --git a/source/common/Makefile.in b/source/common/Makefile.in
new file mode 100644
index 0000000..36e3293
--- /dev/null
+++ b/source/common/Makefile.in
@@ -0,0 +1,183 @@
+#******************************************************************************
+#
+#   Copyright (C) 1999-2004, International Business Machines
+#   Corporation and others.  All Rights Reserved.
+#
+#******************************************************************************
+## Makefile.in for ICU - icuuc.so
+## Stephen F. Booth
+
+## Source directory information
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+
+top_builddir = ..
+
+## All the flags and other definitions are included here.
+include $(top_builddir)/icudefs.mk
+
+## Build directory information
+subdir = common
+
+## Extra files to remove for 'make clean'
+CLEANFILES = *~ $(DEPS) $(IMPORT_LIB) $(MIDDLE_IMPORT_LIB) $(FINAL_IMPORT_LIB)
+
+## Target information
+
+TARGET_STUBNAME=$(COMMON_STUBNAME)
+
+ifneq ($(ENABLE_STATIC),)
+TARGET = $(LIBDIR)/$(LIBSICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(A)
+endif
+
+ifneq ($(ENABLE_SHARED),)
+SO_TARGET = $(LIBDIR)/$(LIBICU)$(TARGET_STUBNAME)$(ICULIBSUFFIX).$(SO)
+ALL_SO_TARGETS = $(SO_TARGET) $(MIDDLE_SO_TARGET) $(FINAL_SO_TARGET)
+
+ifeq ($(ENABLE_SO_VERSION_DATA),1)
+SO_VERSION_DATA = common.res
+endif
+
+ifeq ($(OS390BATCH),1)
+BATCH_TARGET = $(BATCH_COMMON_TARGET)
+BATCH_LIBS = $(BATCH_LIBICUDT) -lm
+endif   # OS390BATCH
+
+endif   # ENABLE_SHARED
+
+ALL_TARGETS = $(TARGET) $(ALL_SO_TARGETS) $(BATCH_TARGET)
+
+DYNAMICCPPFLAGS = $(SHAREDLIBCPPFLAGS)
+DYNAMICCFLAGS = $(SHAREDLIBCFLAGS)
+DYNAMICCXXFLAGS = $(SHAREDLIBCXXFLAGS)
+
+LDFLAGS += $(LDFLAGSICUUC)
+CPPFLAGS += -I. -I$(srcdir) -I$(top_srcdir)/i18n $(LIBCPPFLAGS)
+DEFS += -DU_COMMON_IMPLEMENTATION
+
+# $(LIBICUDT) is either stub data or the real DLL common data.
+LIBS = $(LIBICUDT) $(DEFAULT_LIBS)
+
+OBJECTS = putil.o utypes.o uobject.o cmemory.o umutex.o ucln_cmn.o uinit.o \
+udata.o ucmndata.o udatamem.o udataswp.o umapfile.o ucol_swp.o \
+uresbund.o ures_cnv.o uresdata.o resbund.o resbund_cnv.o \
+ucat.o locmap.o uloc.o locid.o \
+uhash.o uhash_us.o \
+ucnv.o ucnv_set.o ucnv_bld.o ucnv_cb.o ucnv_cnv.o ucnv_err.o ucnv_ext.o ucnv_io.o ucnvlat1.o \
+ucnv_u7.o ucnv_u8.o ucnv_u16.o ucnv_u32.o ucnvscsu.o ucnvbocu.o \
+ucnvmbcs.o ucnv2022.o ucnvhz.o ucnv_lmb.o ucnvisci.o ucnvdisp.o \
+unistr.o unistr_case.o unistr_cnv.o unistr_props.o \
+utf_impl.o ustring.o ustr_cnv.o ustrcase.o cstring.o ustrfmt.o ustrtrns.o ustr_wcs.o uinvchar.o \
+normlzr.o unorm.o unormcmp.o unorm_it.o chariter.o schriter.o uchriter.o uiter.o \
+uchar.o uprops.o ucase.o propname.o ubidi_props.o ubidi.o ubidiwrt.o ubidiln.o ushape.o unames.o \
+uscript.o usc_impl.o uvector.o ustack.o uvectr32.o ucmp8.o \
+uarrsort.o utrie.o uset.o uset_props.o uniset.o uniset_props.o ruleiter.o caniter.o unifilt.o unifunct.o usetiter.o \
+brkiter.o brkdict.o ubrk.o dbbi.o dbbi_tbl.o \
+rbbi.o rbbidata.o rbbinode.o rbbirb.o rbbiscan.o rbbisetb.o rbbistbl.o rbbitblb.o \
+serv.o servnotf.o servls.o servlk.o servlkf.o servrbf.o servslkf.o locutil.o \
+uenum.o ustrenum.o uidna.o usprep.o punycode.o \
+cwchar.o filestrm.o util.o parsepos.o utrace.o locbased.o
+
+STATIC_OBJECTS = $(OBJECTS:.o=.$(STATIC_O))
+
+DEPS = $(OBJECTS:.o=.d)
+
+## Header files to install
+HEADERS = unicode/*.h $(srcdir)/unicode/*.h
+
+## List of phony targets
+.PHONY : all all-local install install-local clean clean-local	\
+distclean distclean-local install-library install-headers dist	\
+dist-local check check-local
+
+## Clear suffix list
+.SUFFIXES :
+
+## List of standard targets
+all: all-local
+install: install-local
+clean: clean-local
+distclean : distclean-local
+dist: dist-local
+check: all check-local
+
+-include Makefile.local
+
+all-local: $(ALL_TARGETS) unicode/platform.h
+
+install-local: install-headers install-library
+
+install-library: all-local
+	$(MKINSTALLDIRS) $(DESTDIR)$(libdir)
+ifneq ($(ENABLE_STATIC),)
+	$(INSTALL-L) $(TARGET) $(DESTDIR)$(libdir)
+endif
+ifneq ($(ENABLE_SHARED),)
+	$(INSTALL-L) $(FINAL_SO_TARGET) $(DESTDIR)$(libdir)
+ifneq ($(FINAL_SO_TARGET),$(SO_TARGET))
+	cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(SO_TARGET)) && ln -s $(notdir $(FINAL_SO_TARGET)) $(notdir $(SO_TARGET))
+ifneq ($(FINAL_SO_TARGET),$(MIDDLE_SO_TARGET))
+	cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(MIDDLE_SO_TARGET)) && ln -s $(notdir $(FINAL_SO_TARGET)) $(notdir $(MIDDLE_SO_TARGET))
+endif
+endif
+endif
+ifneq ($(IMPORT_LIB_EXT),)
+	$(INSTALL-L) $(FINAL_IMPORT_LIB) $(DESTDIR)$(libdir)
+ifneq ($(IMPORT_LIB),$(FINAL_IMPORT_LIB))
+	cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(IMPORT_LIB)) && ln -s $(notdir $(FINAL_IMPORT_LIB)) $(notdir $(IMPORT_LIB))
+endif
+ifneq ($(MIDDLE_IMPORT_LIB),$(FINAL_IMPORT_LIB))
+	cd $(DESTDIR)$(libdir) && $(RM) $(notdir $(MIDDLE_IMPORT_LIB)) && ln -s $(notdir $(FINAL_IMPORT_LIB)) $(notdir $(MIDDLE_IMPORT_LIB))
+endif
+endif
+
+install-headers:
+	$(MKINSTALLDIRS) $(DESTDIR)$(includedir)/unicode
+	@for file in $(HEADERS); do \
+	 echo "$(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/unicode"; \
+	 $(INSTALL_DATA) $$file $(DESTDIR)$(includedir)/unicode || exit; \
+	done
+
+dist-local:
+
+clean-local:
+	test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
+	$(RMV) $(OBJECTS) $(STATIC_OBJECTS) $(ALL_TARGETS) $(SO_VERSION_DATA)
+
+distclean-local: clean-local
+	$(RMV) Makefile icucfg.h unicode/platform.h
+
+check-local:
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+	cd $(top_builddir) \
+	 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+unicode/platform.h: $(srcdir)/unicode/platform.h.in $(top_builddir)/config.status
+	cd $(top_builddir) \
+	 && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+ifneq ($(ENABLE_STATIC),)
+$(TARGET): $(TARGET)($(STATIC_OBJECTS))
+	$(RANLIB) $@
+endif
+
+ifneq ($(ENABLE_SHARED),)
+$(FINAL_SO_TARGET): $(OBJECTS) $(SO_VERSION_DATA)
+	$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(LIBS)
+
+ifeq ($(OS390BATCH),1)
+$(BATCH_TARGET): $(OBJECTS)
+	$(SHLIB.cc) $(LD_SONAME) $(OUTOPT)$@ $^ $(BATCH_LIBS)
+endif   # OS390BATCH
+
+endif   # ENABLE_SHARED
+
+ifeq (,$(MAKECMDGOALS))
+-include $(DEPS)
+else
+ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
+-include $(DEPS)
+endif
+endif
+
diff --git a/source/common/brkdict.cpp b/source/common/brkdict.cpp
new file mode 100644
index 0000000..68875b9
--- /dev/null
+++ b/source/common/brkdict.cpp
@@ -0,0 +1,242 @@
+/*
+**********************************************************************
+*   Copyright (C) 1999-2004 IBM and others. All rights reserved.
+**********************************************************************
+*   Date        Name        Description
+*   12/1/99     rtg         Ported from Java
+*   01/13/2000  helena      Added UErrorCode to ctors.
+**********************************************************************
+*/
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_BREAK_ITERATION
+
+#include "unicode/ures.h"
+#include "brkdict.h"
+#include "cmemory.h"
+
+U_NAMESPACE_BEGIN
+
+//=================================================================================
+// deserialization
+//=================================================================================
+
+BreakDictionary::BreakDictionary(const char* /*dictionaryFilename*/, UErrorCode& status)
+ :  columnMap(NULL),
+    table(NULL),
+    rowIndex(NULL),
+    rowIndexFlags(NULL),
+    rowIndexFlagsIndex(NULL),
+    rowIndexShifts(NULL)
+{
+    if (U_FAILURE(status)) return;
+    
+    UResourceBundle *th_dict = ures_open(NULL, "th", &status);
+    th_dict = ures_getByKey(th_dict, "BreakDictionaryData", th_dict, &status);
+    if (U_FAILURE(status)) return;
+
+    int32_t len;
+    const uint8_t * data = ures_getBinary(th_dict, &len, &status);
+    ures_close(th_dict);
+    if (U_FAILURE(status)) return;
+
+    readDictionaryFile(data);
+}
+
+BreakDictionary::~BreakDictionary()
+{
+    ucmp8_close(columnMap);
+    uprv_free(table);
+    uprv_free(rowIndex);
+    uprv_free(rowIndexFlags);
+    uprv_free(rowIndexFlagsIndex);
+    uprv_free(rowIndexShifts);
+}
+
+// macros to support readDictionaryFile.  The data files originated from a Java
+// program, and Java always writes data out in big-endian format.  These macros will
+// byte-swap the data for appropriate use on Windows.
+
+#if U_IS_BIG_ENDIAN
+#define SWAP32(x)
+#define SWAP16(x)
+#else
+#define SWAP32(x) x = (uint32_t)((x >> 24 & 0xff) | (x >> 8 & 0xff00) | (x << 8 & 0xff0000) | (x << 24 & 0xff000000))
+#define SWAP16(x) x = (uint16_t)((x << 8 & 0xff00) | (x >> 8 & 0xff))
+#endif
+
+#define DICTIONARY_READ(source, destAddr, len) \
+        uprv_memcpy(destAddr, source, len);\
+        source+=(len)
+
+
+void
+BreakDictionary::readDictionaryFile(const uint8_t * in)
+{
+    int32_t l;
+    int32_t version;
+
+    int i;
+
+    // read in the version number (right now we just ignore it)
+    DICTIONARY_READ(in, &version, 4);
+
+    // read in the column map (this is serialized in its internal form:
+    // an index array followed by a data array)
+    DICTIONARY_READ(in, &l, 4);
+    SWAP32(l);
+    uint16_t* temp = (uint16_t*) uprv_malloc(sizeof(uint16_t)*l);
+    DICTIONARY_READ(in, temp, l * sizeof (int16_t) );
+    for (i = 0; i < l; i++) {
+        SWAP16(temp[i]);
+    }
+    DICTIONARY_READ(in, &l, 4);
+    SWAP32(l);
+    int8_t* temp2 = (int8_t*) uprv_malloc(sizeof(int8_t)*l);
+    DICTIONARY_READ(in, temp2, l);
+    columnMap = ucmp8_openAdopt(temp, temp2, l);
+
+    // read in numCols and numColGroups
+    DICTIONARY_READ(in, &numCols, 4);
+    SWAP32(numCols);
+    DICTIONARY_READ(in, &numColGroups, 4);
+    SWAP32(numColGroups);
+
+    // read in the row-number index
+    DICTIONARY_READ(in, &l, 4);
+    SWAP32(l);
+    rowIndex = (int16_t *)uprv_malloc(l*2);
+    DICTIONARY_READ(in, rowIndex, l * sizeof (int16_t) );
+    for (i = 0; i < l; i++) {
+        SWAP16(rowIndex[i]);
+    }
+
+    // load in the populated-cells bitmap: index first, then bitmap list
+    DICTIONARY_READ(in, &l, 4);
+    SWAP32(l);
+    rowIndexFlagsIndex = (int16_t *)uprv_malloc(l*2);
+    DICTIONARY_READ(in, rowIndexFlagsIndex, l * sizeof(int16_t) );
+    for (i = 0; i < l; i++) {
+        SWAP16(rowIndexFlagsIndex[i]);
+    }
+    DICTIONARY_READ(in, &l, 4);
+    SWAP32(l);
+    rowIndexFlags = (int32_t *)uprv_malloc(l*4);
+    DICTIONARY_READ(in, rowIndexFlags, l * sizeof(int32_t));
+    for (i = 0; i < l; i++) {
+        SWAP32(rowIndexFlags[i]);
+    }
+
+    // load in the row-shift index
+    DICTIONARY_READ(in, &l, 4);
+    SWAP32(l);
+    rowIndexShifts = (int8_t *)uprv_malloc(l);
+    DICTIONARY_READ(in, rowIndexShifts, l);
+
+    // finally, load in the actual state table
+    DICTIONARY_READ(in, &l, 4);
+    SWAP32(l);
+    table = (int16_t *)uprv_malloc(l*2);
+    DICTIONARY_READ(in, table, l * sizeof(int16_t) );
+    for (i = 0; i < l; i++) {
+        SWAP16(table[i]);
+    }
+
+    // the reverse column map occurs next in the file.  In the C/C++ code, for the
+    // time being, we're not going to worry about that.
+}
+
+//=================================================================================
+// access to the words
+//=================================================================================
+
+/**
+ * Uses the column map to map the character to a column number, then
+ * passes the row and column number to the other version of at()
+ * @param row The current state
+ * @param ch The character whose column we're interested in
+ * @return The new state to transition to
+ */
+int16_t
+BreakDictionary::at(int32_t row, UChar ch) const
+{
+    int16_t col = ucmp8_get(columnMap, ch);
+    return at(row, (int32_t)col);
+}
+
+/**
+ * Returns the value in the cell with the specified (logical) row and
+ * column numbers.  In DictionaryBasedBreakIterator, the row number is
+ * a state number, the column number is an input, and the return value
+ * is the row number of the new state to transition to.  (0 is the
+ * "error" state, and -1 is the "end of word" state in a dictionary)
+ * @param row The row number of the current state
+ * @param col The column number of the input character (0 means "not a
+ * dictionary character")
+ * @return The row number of the new state to transition to
+ */
+int16_t
+BreakDictionary::at(int32_t row, int32_t col) const
+{
+    if (cellIsPopulated(row, col)) {
+        // we map from logical to physical row number by looking up the
+        // mapping in rowIndex; we map from logical column number to
+        // physical column number by looking up a shift value for this
+        // logical row and offsetting the logical column number by
+        // the shift amount.  Then we can use internalAt() to actually
+        // get the value out of the table.
+        return internalAt(rowIndex[row], col + rowIndexShifts[row]);
+    }
+    else {
+        return 0;
+    }
+}
+
+//=================================================================================
+// implementation
+//=================================================================================
+/**
+ * Given (logical) row and column numbers, returns true if the
+ * cell in that position is populated
+ */
+UBool
+BreakDictionary::cellIsPopulated(int32_t row, int32_t col) const
+{
+    // look up the entry in the bitmap index for the specified row.
+    // If it's a negative number, it's the column number of the only
+    // populated cell in the row
+    if (rowIndexFlagsIndex[row] < 0) {
+        return col == -rowIndexFlagsIndex[row];
+    }
+
+    // if it's a positive number, it's the offset of an entry in the bitmap
+    // list.  If the table is more than 32 columns wide, the bitmap is stored
+    // successive entries in the bitmap list, so we have to divide the column
+    // number by 32 and offset the number we got out of the index by the result.
+    // Once we have the appropriate piece of the bitmap, test the appropriate
+    // bit and return the result.
+    else {
+        int32_t flags = rowIndexFlags[rowIndexFlagsIndex[row] + (col >> 5)];
+        return (flags & (1 << (col & 0x1f))) != 0;
+    }
+}
+
+/**
+ * Implementation of at() when we know the specified cell is populated.
+ * @param row The PHYSICAL row number of the cell
+ * @param col The PHYSICAL column number of the cell
+ * @return The value stored in the cell
+ */
+int16_t
+BreakDictionary::internalAt(int32_t row, int32_t col) const
+{
+    // the table is a one-dimensional array, so this just does the math necessary
+    // to treat it as a two-dimensional array (we don't just use a two-dimensional
+    // array because two-dimensional arrays are inefficient in Java)
+    return table[row * numCols + col];
+}
+
+U_NAMESPACE_END
+
+#endif /* #if !UCONFIG_NO_BREAK_ITERATION */
diff --git a/source/common/brkdict.h b/source/common/brkdict.h
new file mode 100644
index 0000000..87a6fd7
--- /dev/null
+++ b/source/common/brkdict.h
@@ -0,0 +1,174 @@
+/*
+**********************************************************************
+*   Copyright (C) 1999-2004 IBM and others. All rights reserved.
+**********************************************************************
+*   Date        Name        Description
+*   12/1/99     rtg         Ported from Java
+*   01/13/2000  helena      Added UErrorCode to ctors.
+**********************************************************************
+*/
+
+#ifndef BRKDICT_H
+#define BRKDICT_H
+
+#include "unicode/utypes.h"
+#include "unicode/uobject.h"
+#include "ucmp8.h"
+
+U_NAMESPACE_BEGIN
+
+/**
+ * This is the class that represents the list of known words used by
+ * DictionaryBasedBreakIterator.  The conceptual data structure used
+ * here is a trie: there is a node hanging off the root node for every
+ * letter that can start a word.  Each of these nodes has a node hanging
+ * off of it for every letter that can be the second letter of a word
+ * if this node is the first letter, and so on.  The trie is represented
+ * as a two-dimensional array that can be treated as a table of state
+ * transitions.  Indexes are used to compress this array, taking
+ * advantage of the fact that this array will always be very sparse.
+ */
+class BreakDictionary : public UMemory {
+    //=================================================================================
+    // data members
+    //=================================================================================
+private:
+
+    /**
+     * Maps from characters to column numbers.  The main use of this is to
+     * avoid making room in the array for empty columns.
+     */
+    CompactByteArray* columnMap;
+
+    /**
+     * The number of actual columns in the table
+     */
+    int32_t numCols;
+
+    /**
+     * Columns are organized into groups of 32.  This says how many
+     * column groups.  (We could calculate this, but we store the
+     * value to avoid having to repeatedly calculate it.)
+     */
+    int32_t numColGroups;
+
+    /**
+     * The actual compressed state table.  Each conceptual row represents
+     * a state, and the cells in it contain the row numbers of the states
+     * to transition to for each possible letter.  0 is used to indicate
+     * an illegal combination of letters (i.e., the error state).  The
+     * table is compressed by eliminating all the unpopulated (i.e., zero)
+     * cells.  Multiple conceptual rows can then be doubled up in a single
+     * physical row by sliding them up and possibly shifting them to one
+     * side or the other so the populated cells don't collide.  Indexes
+     * are used to identify unpopulated cells and to locate populated cells.
+     */
+    int16_t* table;
+
+    /**
+     * This index maps logical row numbers to physical row numbers
+     */
+    int16_t* rowIndex;
+
+    /**
+     * A bitmap is used to tell which cells in the comceptual table are
+     * populated.  This array contains all the unique bit combinations
+     * in that bitmap.  If the table is more than 32 columns wide,
+     * successive entries in this array are used for a single row.
+     */
+    int32_t* rowIndexFlags;
+
+    /**
+     * This index maps from a logical row number into the bitmap table above.
+     * (This keeps us from storing duplicate bitmap combinations.)  Since there
+     * are a lot of rows with only one populated cell, instead of wasting space
+     * in the bitmap table, we just store a negative number in this index for
+     * rows with one populated cell.  The absolute value of that number is
+     * the column number of the populated cell.
+     */
+    int16_t* rowIndexFlagsIndex;
+
+    /**
+     * For each logical row, this index contains a constant that is added to
+     * the logical column number to get the physical column number
+     */
+    int8_t* rowIndexShifts;
+
+    //=================================================================================
+    // deserialization
+    //=================================================================================
+
+public:
+    /**
+     * Constructor.  Creates the BreakDictionary by using readDictionaryFile() to
+     * load the dictionary tables from the disk.
+     * @param dictionaryFilename The name of the dictionary file
+     * @param status for errors if it occurs
+     */
+    BreakDictionary(const char* dictionaryFilename, UErrorCode& status);
+
+    /**
+     * Destructor.
+     */
+    ~BreakDictionary();
+
+    /**
+     * Reads the dictionary file on the disk and constructs the appropriate in-memory
+     * representation.
+     * @param in The given memory stream
+     */
+    void readDictionaryFile(const uint8_t * in);
+
+    //=================================================================================
+    // access to the words
+    //=================================================================================
+
+    /**
+     * Uses the column map to map the character to a column number, then
+     * passes the row and column number to the other version of at()
+     * @param row The current state
+     * @param ch The character whose column we're interested in
+     * @return The new state to transition to
+     */
+    int16_t at(int32_t row, UChar ch) const;
+
+    /**
+     * Returns the value in the cell with the specified (logical) row and
+     * column numbers.  In DictionaryBasedBreakIterator, the row number is
+     * a state number, the column number is an input, and the return value
+     * is the row number of the new state to transition to.  (0 is the
+     * "error" state, and -1 is the "end of word" state in a dictionary)
+     * @param row The row number of the current state
+     * @param col The column number of the input character (0 means "not a
+     * dictionary character")
+     * @return The row number of the new state to transition to
+     */
+    int16_t at(int32_t row, int32_t col) const;
+
+private:
+    /**
+     * Given (logical) row and column numbers, returns true if the
+     * cell in that position is populated
+     * @param row The LOGICAL row number of the cell
+     * @param col The PHYSICAL row number of the cell
+     * @return true if the cell in that position is populated
+     */
+    UBool cellIsPopulated(int32_t row, int32_t col) const;
+
+    /**
+     * Implementation of at() when we know the specified cell is populated.
+     * @param row The PHYSICAL row number of the cell
+     * @param col The PHYSICAL column number of the cell
+     * @return The value stored in the cell
+     */
+    int16_t internalAt(int32_t row, int32_t col) const;
+
+    // the following methods are never meant to be called and so are not defined
+    // (if you don't declare them, you get default implementations)
+    BreakDictionary(const BreakDictionary& that);
+    BreakDictionary& operator=(const BreakDictionary& that);
+};
+
+U_NAMESPACE_END
+
+#endif
diff --git a/source/common/brkiter.cpp b/source/common/brkiter.cpp
new file mode 100644
index 0000000..e8b10f7
--- /dev/null
+++ b/source/common/brkiter.cpp
@@ -0,0 +1,452 @@
+/*
+*******************************************************************************
+* Copyright (C) 1997-2005, International Business Machines Corporation and    *
+* others. All Rights Reserved.                                                *
+*******************************************************************************
+*
+* File TXTBDRY.CPP
+*
+* Modification History:
+*
+*   Date        Name        Description
+*   02/18/97    aliu        Converted from OpenClass.  Added DONE.
+*   01/13/2000  helena      Added UErrorCode parameter to createXXXInstance methods.
+*****************************************************************************************
+*/
+
+// *****************************************************************************
+// This file was generated from the java source file BreakIterator.java
+// *****************************************************************************
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_BREAK_ITERATION
+
+#include "unicode/dbbi.h"
+#include "unicode/brkiter.h"
+#include "unicode/udata.h"
+#include "unicode/ures.h"
+#include "ucln_cmn.h"
+#include "cstring.h"
+#include "mutex.h"
+#include "servloc.h"
+#include "locbased.h"
+#include "uresimp.h"
+
+// *****************************************************************************
+// class BreakIterator
+// This class implements methods for finding the location of boundaries in text.
+// Instances of BreakIterator maintain a current position and scan over text
+// returning the index of characters where boundaries occur.
+// *****************************************************************************
+
+U_NAMESPACE_BEGIN
+
+// -------------------------------------
+
+BreakIterator*
+BreakIterator::buildInstance(const Locale& loc, const char *type, UBool dict, UErrorCode &status)
+{
+    char fnbuff[256];
+    char actualLocale[ULOC_FULLNAME_CAPACITY];
+    int32_t size;
+    const UChar* brkfname = NULL;
+    UResourceBundle brkRulesStack, brkNameStack;
+    UResourceBundle *brkRules = &brkRulesStack, *brkName = &brkNameStack;
+    BreakIterator *result = NULL;
+    
+    if (U_FAILURE(status))
+        return NULL;
+
+    ures_initStackObject(brkRules);
+    ures_initStackObject(brkName);
+
+    // Get the locale
+    UResourceBundle *b = ures_open(NULL, loc.getName(), &status);
+
+    // Get the "boundaries" array.
+    if (U_SUCCESS(status)) {
+        brkRules = ures_getByKeyWithFallback(b, "boundaries", brkRules, &status);
+        // Get the string object naming the rules file
+        brkName = ures_getByKeyWithFallback(brkRules, type, brkName, &status);
+        // Get the actual string
+        brkfname = ures_getString(brkName, &size, &status);
+
+        // Use the string if we found it
+        if (U_SUCCESS(status) && brkfname) {
+            uprv_strncpy(actualLocale,
+                ures_getLocale(brkName, &status),
+                sizeof(actualLocale)/sizeof(actualLocale[0]));
+            u_UCharsToChars(brkfname, fnbuff, size+1);
+        }
+    }
+
+    ures_close(brkRules);
+    ures_close(brkName);
+    
+    UDataMemory* file = udata_open(NULL, "brk", fnbuff, &status);
+    if (U_FAILURE(status)) {
+        ures_close(b);
+        return NULL;
+    }
+
+    // We found the break rules; now see if a dictionary is needed
+    if (dict)
+    {
+        UErrorCode localStatus = U_ZERO_ERROR;
+        brkName = &brkNameStack;
+        ures_initStackObject(brkName);
+        brkName = ures_getByKeyWithFallback(b, "BreakDictionaryData", brkName, &localStatus);
+#if 0
+        if (U_SUCCESS(localStatus)) {
+            brkfname = ures_getString(&brkname, &size, &localStatus);
+        }
+#endif
+        if (U_SUCCESS(localStatus)) {
+#if 0
+            u_UCharsToChars(brkfname, fnbuff, size);
+            fnbuff[size] = '\0';
+#endif
+            result = new DictionaryBasedBreakIterator(file, "thaidict.brk", status);
+        }
+        ures_close(brkName);
+    }
+    
+    // If there is still no result but we haven't had an error, no dictionary,
+    // so make a non-dictionary break iterator
+    if (U_SUCCESS(status) && result == NULL) {
+        result = new RuleBasedBreakIterator(file, status);
+    }
+
+    // If there is a result, set the valid locale and actual locale
+    if (U_SUCCESS(status) && result != NULL) {
+        U_LOCALE_BASED(locBased, *result);
+        locBased.setLocaleIDs(ures_getLocaleByType(b, ULOC_VALID_LOCALE, &status), actualLocale);
+    }
+
+    ures_close(b);
+    
+    if (U_FAILURE(status) && result != NULL) {  // Sometimes redundant check, but simple
+        delete result;
+        return NULL;
+    }
+
+    if (result == NULL) {
+        udata_close(file);
+        if (U_SUCCESS(status)) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+        }
+    }
+
+    return result;
+}
+
+// Creates a break iterator for word breaks.
+BreakIterator* U_EXPORT2
+BreakIterator::createWordInstance(const Locale& key, UErrorCode& status)
+{
+    return createInstance(key, UBRK_WORD, status);
+}
+
+// -------------------------------------
+
+// Creates a break iterator  for line breaks.
+BreakIterator* U_EXPORT2
+BreakIterator::createLineInstance(const Locale& key, UErrorCode& status)
+{
+    return createInstance(key, UBRK_LINE, status);
+}
+
+// -------------------------------------
+
+// Creates a break iterator  for character breaks.
+BreakIterator* U_EXPORT2
+BreakIterator::createCharacterInstance(const Locale& key, UErrorCode& status)
+{
+    return createInstance(key, UBRK_CHARACTER, status);
+}
+
+// -------------------------------------
+
+// Creates a break iterator  for sentence breaks.
+BreakIterator* U_EXPORT2
+BreakIterator::createSentenceInstance(const Locale& key, UErrorCode& status)
+{
+    return createInstance(key, UBRK_SENTENCE, status);
+}
+
+// -------------------------------------
+
+// Creates a break iterator for title casing breaks.
+BreakIterator* U_EXPORT2
+BreakIterator::createTitleInstance(const Locale& key, UErrorCode& status)
+{
+    return createInstance(key, UBRK_TITLE, status);
+}
+
+// -------------------------------------
+
+// Gets all the available locales that has localized text boundary data.
+const Locale* U_EXPORT2
+BreakIterator::getAvailableLocales(int32_t& count)
+{
+    return Locale::getAvailableLocales(count);
+}
+
+// -------------------------------------
+// Gets the objectLocale display name in the default locale language.
+UnicodeString& U_EXPORT2
+BreakIterator::getDisplayName(const Locale& objectLocale,
+                             UnicodeString& name)
+{
+    return objectLocale.getDisplayName(name);
+}
+
+// -------------------------------------
+// Gets the objectLocale display name in the displayLocale language.
+UnicodeString& U_EXPORT2
+BreakIterator::getDisplayName(const Locale& objectLocale,
+                             const Locale& displayLocale,
+                             UnicodeString& name)
+{
+    return objectLocale.getDisplayName(displayLocale, name);
+}
+
+// ------------------------------------------
+//
+// Default constructor and destructor
+//
+//-------------------------------------------
+
+BreakIterator::BreakIterator()
+{
+    fBufferClone = FALSE;
+    *validLocale = *actualLocale = 0;
+}
+
+BreakIterator::~BreakIterator()
+{
+}
+
+// ------------------------------------------
+//
+// Registration
+//
+//-------------------------------------------
+#if !UCONFIG_NO_SERVICE
+
+static ICULocaleService* gService = NULL;
+
+// -------------------------------------
+
+class ICUBreakIteratorFactory : public ICUResourceBundleFactory {
+protected:
+    virtual UObject* handleCreate(const Locale& loc, int32_t kind, const ICUService* /*service*/, UErrorCode& status) const {
+        return BreakIterator::makeInstance(loc, kind, status);
+    }
+};
+
+// -------------------------------------
+
+class ICUBreakIteratorService : public ICULocaleService {
+public:
+    ICUBreakIteratorService()
+        : ICULocaleService(UNICODE_STRING("Break Iterator", 14))
+    {
+        UErrorCode status = U_ZERO_ERROR;
+        registerFactory(new ICUBreakIteratorFactory(), status);
+    }
+    
+    virtual UObject* cloneInstance(UObject* instance) const {
+        return ((BreakIterator*)instance)->clone();
+    }
+    
+    virtual UObject* handleDefault(const ICUServiceKey& key, UnicodeString* /*actualID*/, UErrorCode& status) const {
+        LocaleKey& lkey = (LocaleKey&)key;
+        int32_t kind = lkey.kind();
+        Locale loc;
+        lkey.currentLocale(loc);
+        return BreakIterator::makeInstance(loc, kind, status);
+    }
+    
+    virtual UBool isDefault() const {
+        return countFactories() == 1;
+    }
+};
+
+// -------------------------------------
+
+U_NAMESPACE_END
+
+// defined in ucln_cmn.h
+
+/**
+ * Release all static memory held by breakiterator.  
+ */
+U_CDECL_BEGIN
+static UBool U_CALLCONV breakiterator_cleanup(void) {
+#if !UCONFIG_NO_SERVICE
+    if (gService) {
+        delete gService;
+        gService = NULL;
+    }
+#endif
+    return TRUE;
+}
+U_CDECL_END
+U_NAMESPACE_BEGIN
+
+static ICULocaleService* 
+getService(void)
+{
+    UBool needsInit;
+    umtx_lock(NULL);
+    needsInit = (UBool)(gService == NULL);
+    umtx_unlock(NULL);
+    
+    if (needsInit) {
+        ICULocaleService  *tService = new ICUBreakIteratorService();
+        umtx_lock(NULL);
+        if (gService == NULL) {
+            gService = tService;
+            tService = NULL;
+            ucln_common_registerCleanup(UCLN_COMMON_BREAKITERATOR, breakiterator_cleanup);
+        }
+        umtx_unlock(NULL);
+        delete tService;
+    }
+    return gService;
+}
+
+// -------------------------------------
+
+static UBool
+hasService(void) 
+{
+    Mutex mutex;
+    return gService != NULL;
+}
+
+// -------------------------------------
+
+URegistryKey U_EXPORT2
+BreakIterator::registerInstance(BreakIterator* toAdopt, const Locale& locale, UBreakIteratorType kind, UErrorCode& status) 
+{
+    return getService()->registerInstance(toAdopt, locale, kind, status);
+}
+
+// -------------------------------------
+
+UBool U_EXPORT2
+BreakIterator::unregister(URegistryKey key, UErrorCode& status) 
+{
+    if (U_SUCCESS(status)) {
+        if (hasService()) {
+            return gService->unregister(key, status);
+        }
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+    }
+    return FALSE;
+}
+
+// -------------------------------------
+
+StringEnumeration* U_EXPORT2
+BreakIterator::getAvailableLocales(void)
+{
+  return getService()->getAvailableLocales();
+}
+#endif /* UCONFIG_NO_SERVICE */
+
+// -------------------------------------
+
+BreakIterator*
+BreakIterator::createInstance(const Locale& loc, UBreakIteratorType kind, UErrorCode& status)
+{
+    if (U_FAILURE(status)) {
+        return NULL;
+    }
+    
+    u_init(&status);
+#if !UCONFIG_NO_SERVICE
+    if (hasService()) {
+        Locale actualLoc("");
+        BreakIterator *result = (BreakIterator*)gService->get(loc, kind, &actualLoc, status);
+        // TODO: The way the service code works in ICU 2.8 is that if
+        // there is a real registered break iterator, the actualLoc
+        // will be populated, but if the handleDefault path is taken
+        // (because nothing is registered that can handle the
+        // requested locale) then the actualLoc comes back empty.  In
+        // that case, the returned object already has its actual/valid
+        // locale data populated (by makeInstance, which is what
+        // handleDefault calls), so we don't touch it.  YES, A COMMENT
+        // THIS LONG is a sign of bad code -- so the action item is to
+        // revisit this in ICU 3.0 and clean it up/fix it/remove it.
+        if (U_SUCCESS(status) && (result != NULL) && *actualLoc.getName() != 0) {
+            U_LOCALE_BASED(locBased, *result);
+            locBased.setLocaleIDs(actualLoc.getName(), actualLoc.getName());
+        }
+        return result;
+    }
+    else
+#endif
+    {
+        return makeInstance(loc, kind, status);
+    }
+}
+
+// -------------------------------------
+
+BreakIterator* 
+BreakIterator::makeInstance(const Locale& loc, int32_t kind, UErrorCode& status)
+{
+
+    if (U_FAILURE(status)) {
+        return NULL;
+    }
+
+    BreakIterator *result = NULL;
+    switch (kind) {
+    case UBRK_CHARACTER: 
+        result = BreakIterator::buildInstance(loc, "grapheme", FALSE, status);
+        break;
+    case UBRK_WORD:
+        result = BreakIterator::buildInstance(loc, "word", TRUE, status);
+        break;
+    case UBRK_LINE:
+        result = BreakIterator::buildInstance(loc, "line", TRUE, status);
+        break;
+    case UBRK_SENTENCE:
+        result = BreakIterator::buildInstance(loc, "sentence", FALSE, status);
+        break;
+    case UBRK_TITLE:
+        result = BreakIterator::buildInstance(loc, "title", FALSE, status);
+        break;
+    default:
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+    }
+
+    if (U_FAILURE(status)) {
+        return NULL;
+    }
+
+    return result;
+}
+
+Locale 
+BreakIterator::getLocale(ULocDataLocaleType type, UErrorCode& status) const {
+    U_LOCALE_BASED(locBased, *this);
+    return locBased.getLocale(type, status);
+}
+
+const char *
+BreakIterator::getLocaleID(ULocDataLocaleType type, UErrorCode& status) const {
+    U_LOCALE_BASED(locBased, *this);
+    return locBased.getLocaleID(type, status);
+}
+
+U_NAMESPACE_END
+
+#endif /* #if !UCONFIG_NO_BREAK_ITERATION */
+
+//eof
diff --git a/source/common/caniter.cpp b/source/common/caniter.cpp
new file mode 100644
index 0000000..731e243
--- /dev/null
+++ b/source/common/caniter.cpp
@@ -0,0 +1,675 @@
+/*
+ *****************************************************************************
+ * Copyright (C) 1996-2004, International Business Machines Corporation and  *
+ * others. All Rights Reserved.                                              *
+ *****************************************************************************
+ */
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_NORMALIZATION
+
+#include "unicode/uset.h"
+#include "unicode/ustring.h"
+#include "hash.h"
+#include "unormimp.h"
+#include "unicode/caniter.h"
+#include "unicode/normlzr.h"
+#include "unicode/uchar.h"
+#include "cmemory.h"
+
+/**
+ * This class allows one to iterate through all the strings that are canonically equivalent to a given
+ * string. For example, here are some sample results:
+Results for: {LATIN CAPITAL LETTER A WITH RING ABOVE}{LATIN SMALL LETTER D}{COMBINING DOT ABOVE}{COMBINING CEDILLA}
+1: \u0041\u030A\u0064\u0307\u0327
+ = {LATIN CAPITAL LETTER A}{COMBINING RING ABOVE}{LATIN SMALL LETTER D}{COMBINING DOT ABOVE}{COMBINING CEDILLA}
+2: \u0041\u030A\u0064\u0327\u0307
+ = {LATIN CAPITAL LETTER A}{COMBINING RING ABOVE}{LATIN SMALL LETTER D}{COMBINING CEDILLA}{COMBINING DOT ABOVE}
+3: \u0041\u030A\u1E0B\u0327
+ = {LATIN CAPITAL LETTER A}{COMBINING RING ABOVE}{LATIN SMALL LETTER D WITH DOT ABOVE}{COMBINING CEDILLA}
+4: \u0041\u030A\u1E11\u0307
+ = {LATIN CAPITAL LETTER A}{COMBINING RING ABOVE}{LATIN SMALL LETTER D WITH CEDILLA}{COMBINING DOT ABOVE}
+5: \u00C5\u0064\u0307\u0327
+ = {LATIN CAPITAL LETTER A WITH RING ABOVE}{LATIN SMALL LETTER D}{COMBINING DOT ABOVE}{COMBINING CEDILLA}
+6: \u00C5\u0064\u0327\u0307
+ = {LATIN CAPITAL LETTER A WITH RING ABOVE}{LATIN SMALL LETTER D}{COMBINING CEDILLA}{COMBINING DOT ABOVE}
+7: \u00C5\u1E0B\u0327
+ = {LATIN CAPITAL LETTER A WITH RING ABOVE}{LATIN SMALL LETTER D WITH DOT ABOVE}{COMBINING CEDILLA}
+8: \u00C5\u1E11\u0307
+ = {LATIN CAPITAL LETTER A WITH RING ABOVE}{LATIN SMALL LETTER D WITH CEDILLA}{COMBINING DOT ABOVE}
+9: \u212B\u0064\u0307\u0327
+ = {ANGSTROM SIGN}{LATIN SMALL LETTER D}{COMBINING DOT ABOVE}{COMBINING CEDILLA}
+10: \u212B\u0064\u0327\u0307
+ = {ANGSTROM SIGN}{LATIN SMALL LETTER D}{COMBINING CEDILLA}{COMBINING DOT ABOVE}
+11: \u212B\u1E0B\u0327
+ = {ANGSTROM SIGN}{LATIN SMALL LETTER D WITH DOT ABOVE}{COMBINING CEDILLA}
+12: \u212B\u1E11\u0307
+ = {ANGSTROM SIGN}{LATIN SMALL LETTER D WITH CEDILLA}{COMBINING DOT ABOVE}
+ *<br>Note: the code is intended for use with small strings, and is not suitable for larger ones,
+ * since it has not been optimized for that situation.
+ *@author M. Davis
+ *@draft
+ */
+#if 0
+static UBool PROGRESS = FALSE;
+
+#include <stdio.h>
+#include "unicode/translit.h"
+
+UErrorCode status = U_ZERO_ERROR;
+
+// Just for testing - remove, not thread safe.
+static const char* UToS(const UnicodeString &source) {
+  static char buffer[256];
+  buffer[source.extract(0, source.length(), buffer)] = 0;
+  return buffer;
+}
+
+static const UnicodeString &Tr(const UnicodeString &source) {
+  static Transliterator *NAME = Transliterator::createInstance("name", UTRANS_FORWARD, status);
+  static UnicodeString result;
+  result = source;
+  NAME->transliterate(result);
+  return result;
+}
+#endif
+// public
+
+U_NAMESPACE_BEGIN
+
+// TODO: add boilerplate methods.
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(CanonicalIterator)
+
+/**
+ *@param source string to get results for
+ */
+CanonicalIterator::CanonicalIterator(const UnicodeString &sourceStr, UErrorCode &status) :
+    pieces(NULL),
+    pieces_length(0),
+    pieces_lengths(NULL),
+    current(NULL),
+    current_length(0)
+{
+    if(U_SUCCESS(status)) {
+      setSource(sourceStr, status);
+    }
+}
+
+CanonicalIterator::~CanonicalIterator() {
+  cleanPieces();
+}
+
+void CanonicalIterator::cleanPieces() {
+    int32_t i = 0;
+    if(pieces != NULL) {
+        for(i = 0; i < pieces_length; i++) {
+            if(pieces[i] != NULL) {
+                delete[] pieces[i];
+            }
+        }
+        uprv_free(pieces);
+        pieces = NULL;
+        if(pieces_lengths != NULL) {
+            uprv_free(pieces_lengths);
+        }
+        pieces_lengths = NULL;
+        if(current != NULL) {
+            uprv_free(current);
+        }
+        current = NULL;
+    }
+}
+
+/**
+ *@return gets the source: NOTE: it is the NFD form of source
+ */
+UnicodeString CanonicalIterator::getSource() {
+  return source;
+}
+
+/**
+ * Resets the iterator so that one can start again from the beginning.
+ */
+void CanonicalIterator::reset() {
+    done = FALSE;
+    for (int i = 0; i < current_length; ++i) {
+        current[i] = 0;
+    }
+}
+
+/**
+ *@return the next string that is canonically equivalent. The value null is returned when
+ * the iteration is done.
+ */
+UnicodeString CanonicalIterator::next() {
+    int32_t i = 0;
+
+    if (done) {
+      buffer.setToBogus();
+      return buffer;
+    }
+
+    // delete old contents
+    buffer.remove();
+
+    // construct return value
+
+    for (i = 0; i < pieces_length; ++i) {
+        buffer.append(pieces[i][current[i]]);
+    }
+    //String result = buffer.toString(); // not needed
+
+    // find next value for next time
+
+    for (i = current_length - 1; ; --i) {
+        if (i < 0) {
+            done = TRUE;
+            break;
+        }
+        current[i]++;
+        if (current[i] < pieces_lengths[i]) break; // got sequence
+        current[i] = 0;
+    }
+    return buffer;
+}
+
+/**
+ *@param set the source string to iterate against. This allows the same iterator to be used
+ * while changing the source string, saving object creation.
+ */
+void CanonicalIterator::setSource(const UnicodeString &newSource, UErrorCode &status) {
+    int32_t list_length = 0;
+    UChar32 cp = 0;
+    int32_t start = 0;
+    int32_t i = 0;
+    UnicodeString *list = NULL;
+
+    Normalizer::normalize(newSource, UNORM_NFD, 0, source, status);
+    if(U_FAILURE(status)) {
+      return;
+    }
+    done = FALSE;
+
+    cleanPieces();
+
+    // catch degenerate case
+    if (newSource.length() == 0) {
+        pieces = (UnicodeString **)uprv_malloc(sizeof(UnicodeString *));
+        pieces_lengths = (int32_t*)uprv_malloc(1 * sizeof(int32_t));
+        pieces_length = 1;
+        current = (int32_t*)uprv_malloc(1 * sizeof(int32_t));
+        current_length = 1;
+        if (pieces == NULL || pieces_lengths == NULL || current == NULL) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            goto CleanPartialInitialization;
+        }
+        current[0] = 0;
+        pieces[0] = new UnicodeString[1];
+        pieces_lengths[0] = 1;
+        if (pieces[0] == 0) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+            goto CleanPartialInitialization;
+        }
+        return;
+    }
+
+
+    list = new UnicodeString[source.length()];
+    if (list == 0) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        goto CleanPartialInitialization;
+    }
+
+    // i should initialy be the number of code units at the 
+    // start of the string
+    i = UTF16_CHAR_LENGTH(source.char32At(0));
+    //int32_t i = 1;
+    // find the segments
+    // This code iterates through the source string and 
+    // extracts segments that end up on a codepoint that
+    // doesn't start any decompositions. (Analysis is done
+    // on the NFD form - see above).
+    for (; i < source.length(); i += UTF16_CHAR_LENGTH(cp)) {
+        cp = source.char32At(i);
+        if (unorm_isCanonSafeStart(cp)) {
+            source.extract(start, i-start, list[list_length++]); // add up to i
+            start = i;
+        }
+    }
+    source.extract(start, i-start, list[list_length++]); // add last one
+
+
+    // allocate the arrays, and find the strings that are CE to each segment
+    pieces = (UnicodeString **)uprv_malloc(list_length * sizeof(UnicodeString *));
+    pieces_length = list_length;
+    pieces_lengths = (int32_t*)uprv_malloc(list_length * sizeof(int32_t));
+    current = (int32_t*)uprv_malloc(list_length * sizeof(int32_t));
+    current_length = list_length;
+    if (pieces == NULL || pieces_lengths == NULL || current == NULL) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        goto CleanPartialInitialization;
+    }
+
+    for (i = 0; i < current_length; i++) {
+        current[i] = 0;
+    }
+    // for each segment, get all the combinations that can produce 
+    // it after NFD normalization
+    for (i = 0; i < pieces_length; ++i) {
+        //if (PROGRESS) printf("SEGMENT\n");
+        pieces[i] = getEquivalents(list[i], pieces_lengths[i], status);
+    }
+
+    delete[] list;
+    return;
+// Common section to cleanup all local variables and reset object variables.
+CleanPartialInitialization:
+    if (list != NULL) {
+        delete[] list;
+    }
+    if (pieces != NULL) {
+        uprv_free(pieces);
+    }
+    pieces = NULL;
+    pieces_length = 0;
+    if(pieces_lengths != NULL) {
+        uprv_free(pieces_lengths);
+    }
+    pieces_lengths = NULL;
+    if(current != NULL) {
+        uprv_free(current);
+    }
+    current = NULL;
+    current_length = 0;
+}
+
+/**
+ * Dumb recursive implementation of permutation.
+ * TODO: optimize
+ * @param source the string to find permutations for
+ * @return the results in a set.
+ */
+void U_EXPORT2 CanonicalIterator::permute(UnicodeString &source, UBool skipZeros, Hashtable *result, UErrorCode &status) {
+    if(U_FAILURE(status)) {
+      return;
+    }
+    //if (PROGRESS) printf("Permute: %s\n", UToS(Tr(source)));
+    int32_t i = 0;
+
+    // optimization:
+    // if zero or one character, just return a set with it
+    // we check for length < 2 to keep from counting code points all the time
+    if (source.length() <= 2 && source.countChar32() <= 1) {
+      UnicodeString *toPut = new UnicodeString(source);
+      /* test for NULL */
+      if (toPut == 0) {
+          status = U_MEMORY_ALLOCATION_ERROR;
+          return;
+      }
+      result->put(source, toPut, status);
+      return;
+    }
+
+    // otherwise iterate through the string, and recursively permute all the other characters
+    UChar32 cp;
+    Hashtable *subpermute = new Hashtable(status);
+    /* test for NULL */
+    if (subpermute == 0) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+    if (U_SUCCESS(status)) {
+        subpermute->setValueDeleter(uhash_deleteUnicodeString);
+    }
+
+    for (i = 0; i < source.length(); i += UTF16_CHAR_LENGTH(cp)) {
+        cp = source.char32At(i);
+        const UHashElement *ne = NULL;
+        int32_t el = -1;
+        UnicodeString subPermuteString = source;
+
+        // optimization:
+        // if the character is canonical combining class zero,
+        // don't permute it
+        if (skipZeros && i != 0 && u_getCombiningClass(cp) == 0) {
+            //System.out.println("Skipping " + Utility.hex(UTF16.valueOf(source, i)));
+            continue;
+        }
+
+        subpermute->removeAll();
+
+        // see what the permutations of the characters before and after this one are
+        //Hashtable *subpermute = permute(source.substring(0,i) + source.substring(i + UTF16.getCharCount(cp)));
+        permute(subPermuteString.replace(i, UTF16_CHAR_LENGTH(cp), NULL, 0), skipZeros, subpermute, status);
+        /* Test for buffer overflows */
+        if(U_FAILURE(status)) {
+            delete subpermute;
+            return;
+        }
+        // The upper replace is destructive. The question is do we have to make a copy, or we don't care about the contents 
+        // of source at this point.
+
+        // prefix this character to all of them
+        ne = subpermute->nextElement(el);
+        while (ne != NULL) {
+          UnicodeString *permRes = (UnicodeString *)(ne->value.pointer);
+          UnicodeString *chStr = new UnicodeString(cp);
+          //test for  NULL
+          if (chStr == NULL) {
+              status = U_MEMORY_ALLOCATION_ERROR;
+              delete subpermute;
+              return;
+          }
+            chStr->append(*permRes); //*((UnicodeString *)(ne->value.pointer));
+            //if (PROGRESS) printf("  Piece: %s\n", UToS(*chStr));
+            result->put(*chStr, chStr, status);
+            ne = subpermute->nextElement(el);
+        }
+    }
+    delete subpermute;
+    //return result;
+}
+
+// privates
+
+// we have a segment, in NFD. Find all the strings that are canonically equivalent to it.
+UnicodeString* CanonicalIterator::getEquivalents(const UnicodeString &segment, int32_t &result_len, UErrorCode &status) {
+    Hashtable result(status);
+    Hashtable permutations(status);
+    if (U_FAILURE(status)) {
+        return 0;
+    }
+    result.setValueDeleter(uhash_deleteUnicodeString);
+    permutations.setValueDeleter(uhash_deleteUnicodeString);
+
+    UChar USeg[256];
+    int32_t segLen = segment.extract(USeg, 256, status);
+    Hashtable *basic = getEquivalents2(USeg, segLen, status);
+    //Hashtable *basic = getEquivalents2(segment, segLen, status);
+    if (basic == 0) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        delete basic;
+        return 0;
+    }
+
+    // now get all the permutations
+    // add only the ones that are canonically equivalent
+    // TODO: optimize by not permuting any class zero.
+
+    const UHashElement *ne = NULL;
+    int32_t el = -1;
+    //Iterator it = basic.iterator();
+    ne = basic->nextElement(el);
+    //while (it.hasNext())
+    while (ne != NULL) {
+        //String item = (String) it.next();
+        UnicodeString item = *((UnicodeString *)(ne->value.pointer));
+
+        permutations.removeAll();
+        permute(item, CANITER_SKIP_ZEROES, &permutations, status);
+        const UHashElement *ne2 = NULL;
+        int32_t el2 = -1;
+        //Iterator it2 = permutations.iterator();
+        ne2 = permutations.nextElement(el2);
+        //while (it2.hasNext())
+        while (ne2 != NULL) {
+            //String possible = (String) it2.next();
+            //UnicodeString *possible = new UnicodeString(*((UnicodeString *)(ne2->value.pointer)));
+            UnicodeString possible(*((UnicodeString *)(ne2->value.pointer)));
+            UnicodeString attempt;
+            Normalizer::normalize(possible, UNORM_NFD, 0, attempt, status);
+
+            // TODO: check if operator == is semanticaly the same as attempt.equals(segment)
+            if (attempt==segment) {
+                //if (PROGRESS) printf("Adding Permutation: %s\n", UToS(Tr(*possible)));
+                // TODO: use the hashtable just to catch duplicates - store strings directly (somehow).
+                result.put(possible, new UnicodeString(possible), status); //add(possible);
+            } else {
+                //if (PROGRESS) printf("-Skipping Permutation: %s\n", UToS(Tr(*possible)));
+            }
+
+            ne2 = permutations.nextElement(el2);
+        }
+        ne = basic->nextElement(el);
+    }
+
+    /* Test for buffer overflows */
+    if(U_FAILURE(status)) {
+        delete basic;
+        return 0;
+    }
+    // convert into a String[] to clean up storage
+    //String[] finalResult = new String[result.size()];
+    UnicodeString *finalResult = NULL;
+    int32_t resultCount;
+    if((resultCount = result.count())) {
+        finalResult = new UnicodeString[resultCount];
+    } else {
+        status = U_ILLEGAL_ARGUMENT_ERROR;
+    }
+    /* test for NULL */
+    if (finalResult == 0) {
+        if(U_SUCCESS(status)) {
+            status = U_MEMORY_ALLOCATION_ERROR;
+        }
+        delete basic;
+        return 0;
+    }
+    //result.toArray(finalResult);
+    result_len = 0;
+    el = -1;
+    ne = result.nextElement(el);
+    while(ne != NULL) {
+        UnicodeString finResult = *((UnicodeString *)(ne->value.pointer));
+        finalResult[result_len++] = finResult;
+        ne = result.nextElement(el);
+    }
+
+
+    delete basic;
+    return finalResult;
+}
+
+Hashtable *CanonicalIterator::getEquivalents2(const UChar *segment, int32_t segLen, UErrorCode &status) {
+//Hashtable *CanonicalIterator::getEquivalents2(const UnicodeString &segment, int32_t segLen, UErrorCode &status) {
+
+    Hashtable *result = new Hashtable(status);
+    /* test for NULL */
+    if (result == 0) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return 0;
+    }
+    if (U_SUCCESS(status)) {
+        result->setValueDeleter(uhash_deleteUnicodeString);
+    }
+
+    //if (PROGRESS) printf("Adding: %s\n", UToS(Tr(segment)));
+
+    UnicodeString toPut(segment, segLen);
+
+    result->put(toPut, new UnicodeString(toPut), status);
+
+    USerializedSet starts;
+
+    // cycle through all the characters
+    UChar32 cp, end = 0;
+    int32_t i = 0, j;
+    for (i = 0; i < segLen; i += UTF16_CHAR_LENGTH(cp)) {
+        // see if any character is at the start of some decomposition
+        UTF_GET_CHAR(segment, 0, i, segLen, cp);
+        if (!unorm_getCanonStartSet(cp, &starts)) {
+          continue;
+        }
+        // if so, see which decompositions match 
+        for(j = 0, cp = end+1; cp <= end || uset_getSerializedRange(&starts, j++, &cp, &end); ++cp) {
+            //Hashtable *remainder = extract(cp, segment, segLen, i, status);
+            Hashtable *remainder = extract(cp, segment, segLen, i, status);
+            if (remainder == NULL) continue;
+
+            // there were some matches, so add all the possibilities to the set.
+            UnicodeString prefix(segment, i);
+            prefix += cp;
+
+            const UHashElement *ne = NULL;
+            int32_t el = -1;
+            ne = remainder->nextElement(el);
+            while (ne != NULL) {
+                UnicodeString item = *((UnicodeString *)(ne->value.pointer));
+                UnicodeString *toAdd = new UnicodeString(prefix);
+                /* test for NULL */
+                if (toAdd == 0) {
+                    status = U_MEMORY_ALLOCATION_ERROR;
+                    delete result;
+                    delete remainder;
+                    return 0;
+                }
+                *toAdd += item;
+                result->put(*toAdd, toAdd, status);
+
+                //if (PROGRESS) printf("Adding: %s\n", UToS(Tr(*toAdd)));
+
+                ne = remainder->nextElement(el);
+            }
+
+            delete remainder;
+        }
+    }
+
+    /* Test for buffer overflows */
+    if(U_FAILURE(status)) {
+        return 0;
+    }
+    return result;
+}
+
+/**
+ * See if the decomposition of cp2 is at segment starting at segmentPos 
+ * (with canonical rearrangment!)
+ * If so, take the remainder, and return the equivalents 
+ */
+Hashtable *CanonicalIterator::extract(UChar32 comp, const UChar *segment, int32_t segLen, int32_t segmentPos, UErrorCode &status) {
+//Hashtable *CanonicalIterator::extract(UChar32 comp, const UnicodeString &segment, int32_t segLen, int32_t segmentPos, UErrorCode &status) {
+    //if (PROGRESS) printf(" extract: %s, ", UToS(Tr(UnicodeString(comp))));
+    //if (PROGRESS) printf("%s, %i\n", UToS(Tr(segment)), segmentPos);
+
+    const int32_t bufSize = 256;
+    int32_t bufLen = 0;
+    UChar temp[bufSize];
+
+    int32_t inputLen = 0, decompLen;
+    UChar stackBuffer[4];
+    const UChar *decomp;
+
+    U16_APPEND_UNSAFE(temp, inputLen, comp);
+    decomp = unorm_getCanonicalDecomposition(comp, stackBuffer, &decompLen);
+    if(decomp == NULL) {
+        /* copy temp */
+        stackBuffer[0] = temp[0];
+        if(inputLen > 1) {
+            stackBuffer[1] = temp[1];
+        }
+        decomp = stackBuffer;
+        decompLen = inputLen;
+    }
+
+    UChar *buff = temp+inputLen;
+
+    // See if it matches the start of segment (at segmentPos)
+    UBool ok = FALSE;
+    UChar32 cp;
+    int32_t decompPos = 0;
+    UChar32 decompCp;
+    UTF_NEXT_CHAR(decomp, decompPos, decompLen, decompCp);
+
+    int32_t i;
+    UBool overflow = FALSE;
+
+    i = segmentPos;
+    while(i < segLen) {
+      UTF_NEXT_CHAR(segment, i, segLen, cp);
+
+        if (cp == decompCp) { // if equal, eat another cp from decomp
+
+            //if (PROGRESS) printf("  matches: %s\n", UToS(Tr(UnicodeString(cp))));
+
+            if (decompPos == decompLen) { // done, have all decomp characters!
+                //u_strcat(buff+bufLen, segment+i);
+                uprv_memcpy(buff+bufLen, segment+i, (segLen-i)*sizeof(UChar));
+                bufLen+=segLen-i;
+
+                ok = TRUE;
+                break;
+            }
+            UTF_NEXT_CHAR(decomp, decompPos, decompLen, decompCp);
+        } else {
+            //if (PROGRESS) printf("  buffer: %s\n", UToS(Tr(UnicodeString(cp))));
+
+            // brute force approach
+
+            U16_APPEND(buff, bufLen, bufSize, cp, overflow);
+
+            if(overflow) {
+                /*
+                 * ### TODO handle buffer overflow
+                 * The buffer is large, but an overflow may still happen with
+                 * unusual input (many combining marks?).
+                 * Reallocate buffer and continue.
+                 * markus 20020929
+                 */
+
+                overflow = FALSE;
+            }
+
+            /* TODO: optimize
+            // since we know that the classes are monotonically increasing, after zero
+            // e.g. 0 5 7 9 0 3
+            // we can do an optimization
+            // there are only a few cases that work: zero, less, same, greater
+            // if both classes are the same, we fail
+            // if the decomp class < the segment class, we fail
+
+            segClass = getClass(cp);
+            if (decompClass <= segClass) return null;
+            */
+        }
+    }
+    if (!ok) return NULL; // we failed, characters left over
+
+    //if (PROGRESS) printf("Matches\n");
+
+    if (bufLen == 0) {
+      Hashtable *result = new Hashtable(status);
+      /* test for NULL */
+      if (result == 0) {
+          status = U_MEMORY_ALLOCATION_ERROR;
+          return 0;
+      }
+      result->setValueDeleter(uhash_deleteUnicodeString);
+      result->put(UnicodeString(), new UnicodeString(), status);
+      return result; // succeed, but no remainder
+    }
+
+    // brute force approach
+    // check to make sure result is canonically equivalent
+    int32_t tempLen = inputLen + bufLen;
+
+    UChar trial[bufSize];
+    unorm_decompose(trial, bufSize, temp, tempLen, FALSE, 0, &status);
+
+    /* Test for buffer overflows */
+    if(U_FAILURE(status)) {
+        return 0;
+    }
+
+    if(uprv_memcmp(segment+segmentPos, trial, (segLen - segmentPos)*sizeof(UChar)) != 0) {
+      return NULL;
+    }
+
+    return getEquivalents2(buff, bufLen, status);
+}
+
+U_NAMESPACE_END
+
+#endif /* #if !UCONFIG_NO_NORMALIZATION */
diff --git a/source/common/chariter.cpp b/source/common/chariter.cpp
new file mode 100644
index 0000000..a598bd6
--- /dev/null
+++ b/source/common/chariter.cpp
@@ -0,0 +1,96 @@
+/*
+**********************************************************************
+*   Copyright (C) 1999-2004, International Business Machines
+*   Corporation and others.  All Rights Reserved.
+**********************************************************************
+*/
+
+#include "unicode/chariter.h"
+
+U_NAMESPACE_BEGIN
+
+ForwardCharacterIterator::~ForwardCharacterIterator() {}
+ForwardCharacterIterator::ForwardCharacterIterator()
+: UObject()
+{}
+ForwardCharacterIterator::ForwardCharacterIterator(const ForwardCharacterIterator &other)
+: UObject(other)
+{}
+
+
+CharacterIterator::CharacterIterator()
+: textLength(0), pos(0), begin(0), end(0) {
+}
+
+CharacterIterator::CharacterIterator(int32_t length)
+: textLength(length), pos(0), begin(0), end(length) {
+    if(textLength < 0) {
+        textLength = end = 0;
+    }
+}
+
+CharacterIterator::CharacterIterator(int32_t length, int32_t position)
+: textLength(length), pos(position), begin(0), end(length) {
+    if(textLength < 0) {
+        textLength = end = 0;
+    }
+    if(pos < 0) {
+        pos = 0;
+    } else if(pos > end) {
+        pos = end;
+    }
+}
+
+CharacterIterator::CharacterIterator(int32_t length, int32_t textBegin, int32_t textEnd, int32_t position)
+: textLength(length), pos(position), begin(textBegin), end(textEnd) {
+    if(textLength < 0) {
+        textLength = 0;
+    }
+    if(begin < 0) {
+        begin = 0;
+    } else if(begin > textLength) {
+        begin = textLength;
+    }
+    if(end < begin) {
+        end = begin;
+    } else if(end > textLength) {
+        end = textLength;
+    }
+    if(pos < begin) {
+        pos = begin;
+    } else if(pos > end) {
+        pos = end;
+    }
+}
+
+CharacterIterator::CharacterIterator(const CharacterIterator &that) :
+ForwardCharacterIterator(that),
+textLength(that.textLength), pos(that.pos), begin(that.begin), end(that.end)
+{
+}
+
+CharacterIterator &
+CharacterIterator::operator=(const CharacterIterator &that) {
+    ForwardCharacterIterator::operator=(that);
+    textLength = that.textLength;
+    pos = that.pos;
+    begin = that.begin;
+    end = that.end;
+    return *this;
+}
+
+// implementing first[32]PostInc() directly in a subclass should be faster
+// but these implementations make subclassing a little easier
+UChar
+CharacterIterator::firstPostInc(void) {
+    setToStart();
+    return nextPostInc();
+}
+
+UChar32
+CharacterIterator::first32PostInc(void) {
+    setToStart();
+    return next32PostInc();
+}
+
+U_NAMESPACE_END
diff --git a/source/common/charstr.h b/source/common/charstr.h
new file mode 100644
index 0000000..3bb11cb
--- /dev/null
+++ b/source/common/charstr.h
@@ -0,0 +1,88 @@
+/*
+**********************************************************************
+*   Copyright (c) 2001-2004, International Business Machines
+*   Corporation and others.  All Rights Reserved.
+**********************************************************************
+*   Date        Name        Description
+*   11/19/2001  aliu        Creation.
+**********************************************************************
+*/
+
+#ifndef CHARSTRING_H
+#define CHARSTRING_H
+
+#include "unicode/utypes.h"
+#include "unicode/uobject.h"
+#include "unicode/unistr.h"
+#include "cmemory.h"
+
+//--------------------------------------------------------------------
+// class CharString
+//
+// This is a tiny wrapper class that is used internally to make a
+// UnicodeString look like a const char*.  It can be allocated on the
+// stack.  It only creates a heap buffer if it needs to.
+//--------------------------------------------------------------------
+
+U_NAMESPACE_BEGIN
+
+class U_COMMON_API CharString : public UMemory {
+public:
+
+#if !UCONFIG_NO_CONVERSION
+    // Constructor
+    //     @param  str    The unicode string to be converted to char *
+    //     @param  codepage   The char * code page.  ""   for invariant conversion.
+    //                                               NULL for default code page.
+//    inline CharString(const UnicodeString& str, const char *codepage);
+#endif
+
+    inline CharString(const UnicodeString& str);
+    inline ~CharString();
+    inline operator const char*() const { return ptr; }
+
+private:
+    char buf[128];
+    char* ptr;
+
+    CharString(const CharString &other); // forbid copying of this class
+    CharString &operator=(const CharString &other); // forbid copying of this class
+};
+
+#if !UCONFIG_NO_CONVERSION
+
+// PLEASE DON'T USE THIS FUNCTION.
+// We don't want the static dependency on conversion or the performance hit that comes from a codepage conversion.
+/*
+inline CharString::CharString(const UnicodeString& str, const char *codepage) {
+    int32_t    len;
+    ptr = buf;
+    len = str.extract(0, 0x7FFFFFFF, buf ,sizeof(buf)-1, codepage);
+    if (len >= (int32_t)(sizeof(buf)-1)) {
+        ptr = (char *)uprv_malloc(len+1);
+        str.extract(0, 0x7FFFFFFF, ptr, len+1, codepage);
+    }
+}*/
+
+#endif
+
+inline CharString::CharString(const UnicodeString& str) {
+    int32_t    len;
+    ptr = buf;
+    len = str.extract(0, 0x7FFFFFFF, buf, (int32_t)(sizeof(buf)-1), US_INV);
+    if (len >= (int32_t)(sizeof(buf)-1)) {
+        ptr = (char *)uprv_malloc(len+1);
+        str.extract(0, 0x7FFFFFFF, ptr, len+1, US_INV);
+    }
+}
+
+inline CharString::~CharString() {
+    if (ptr != buf) {
+        uprv_free(ptr);
+    }
+}
+
+U_NAMESPACE_END
+
+#endif
+//eof
diff --git a/source/common/cmemory.c b/source/common/cmemory.c
new file mode 100644
index 0000000..0f93f36
--- /dev/null
+++ b/source/common/cmemory.c
@@ -0,0 +1,124 @@
+/*
+******************************************************************************
+*
+*   Copyright (C) 2002-2003, International Business Machines
+*   Corporation and others.  All Rights Reserved.
+*
+******************************************************************************
+*
+* File cmemory.c      ICU Heap allocation.
+*                     All ICU heap allocation, both for C and C++ new of ICU
+*                     class types, comes through these functions.
+*
+*                     If you have a need to replace ICU allocation, this is the
+*                     place to do it.
+*
+*                     Note that uprv_malloc(0) returns a non-NULL pointer, and
+*                     that a subsequent free of that pointer value is a NOP.
+*
+******************************************************************************
+*/
+#include "unicode/uclean.h"
+#include "cmemory.h"
+#include <stdlib.h>
+
+/* uprv_malloc(0) returns a pointer to this read-only data. */                
+static const int32_t zeroMem[] = {0, 0, 0, 0, 0, 0};
+
+/* Function Pointers for user-supplied heap functions  */
+static const void     *pContext;
+static UMemAllocFn    *pAlloc;
+static UMemReallocFn  *pRealloc;
+static UMemFreeFn     *pFree;
+
+/* Flag indicating whether any heap allocations have happened.
+ *   Used to prevent changing out the heap functions after allocations have been made */
+static UBool   gHeapInUse;
+
+U_CAPI void * U_EXPORT2
+uprv_malloc(size_t s) {
+    if (s > 0) {
+        gHeapInUse = TRUE;
+        if (pAlloc) {
+            return (*pAlloc)(pContext, s);
+        } else {
+            return malloc(s);
+        }
+    } else {
+        return (void *)zeroMem;
+    }
+}
+
+U_CAPI void * U_EXPORT2
+uprv_realloc(void * buffer, size_t size) {
+    if (buffer == zeroMem) {
+        return uprv_malloc(size);
+    } else if (size == 0) {
+        if (pFree) {
+            (*pFree)(pContext, buffer);
+        } else {
+            free(buffer);
+        }
+        return (void *)zeroMem;
+    } else {
+        gHeapInUse = TRUE;
+        if (pRealloc) {
+            return (*pRealloc)(pContext, buffer, size);
+        } else {
+            return realloc(buffer, size);
+        }
+    }
+}
+
+U_CAPI void U_EXPORT2
+uprv_free(void *buffer) {
+    if (buffer != zeroMem) {
+        if (pFree) {
+            (*pFree)(pContext, buffer);
+        } else {
+            free(buffer);
+        }
+    }
+}
+
+U_CAPI void U_EXPORT2
+u_setMemoryFunctions(const void *context, UMemAllocFn *a, UMemReallocFn *r, UMemFreeFn *f,  UErrorCode *status)
+{
+    if (U_FAILURE(*status)) {
+        return;
+    }
+    if (a==NULL || r==NULL || f==NULL) {
+        *status = U_ILLEGAL_ARGUMENT_ERROR;
+        return;
+    }
+    if (gHeapInUse) {
+        *status = U_INVALID_STATE_ERROR;
+        return;
+    }
+    pContext  = context;
+    pAlloc    = a;
+    pRealloc  = r;
+    pFree     = f;
+}
+
+
+U_CFUNC UBool cmemory_cleanup(void) {
+    pContext   = NULL;
+    pAlloc     = NULL;
+    pRealloc   = NULL;
+    pFree      = NULL;
+    gHeapInUse = FALSE;
+    return TRUE;
+}
+
+
+/*
+ *   gHeapInUse
+ *       Return True if ICU has allocated any memory.
+ *       Used by u_SetMutexFunctions() and similar to verify that ICU has not
+ *               been used, that it is in a pristine initial state.
+ */
+U_CFUNC UBool cmemory_inUse() {
+    return gHeapInUse;
+}
+
diff --git a/source/common/cmemory.h b/source/common/cmemory.h
new file mode 100644
index 0000000..da65d7c
--- /dev/null
+++ b/source/common/cmemory.h
@@ -0,0 +1,82 @@
+/*
+******************************************************************************
+*
+*   Copyright (C) 1997-2003, International Business Machines
+*   Corporation and others.  All Rights Reserved.
+*
+******************************************************************************
+*
+* File CMEMORY.H
+*
+*  Contains stdlib.h/string.h memory functions
+*
+* @author       Bertrand A. Damiba
+*
+* Modification History:
+*
+*   Date        Name        Description
+*   6/20/98     Bertrand    Created.
+*  05/03/99     stephen     Changed from functions to macros.
+*
+******************************************************************************
+*/
+
+#ifndef CMEMORY_H
+#define CMEMORY_H
+
+#include "unicode/utypes.h"
+#include <string.h>
+
+
+#define uprv_memcpy(dst, src, size) U_STANDARD_CPP_NAMESPACE memcpy(dst, src, size)
+#define uprv_memmove(dst, src, size) U_STANDARD_CPP_NAMESPACE memmove(dst, src, size)
+#define uprv_memset(buffer, mark, size) U_STANDARD_CPP_NAMESPACE memset(buffer, mark, size)
+#define uprv_memcmp(buffer1, buffer2, size) U_STANDARD_CPP_NAMESPACE memcmp(buffer1, buffer2,size)
+
+U_CAPI void * U_EXPORT2
+uprv_malloc(size_t s);
+
+U_CAPI void * U_EXPORT2
+uprv_realloc(void *mem, size_t size);
+
+U_CAPI void U_EXPORT2
+uprv_free(void *mem);
+
+/**
+ * This should align the memory properly on any machine.
+ * This is very useful for the safeClone functions.
+ */
+typedef union {
+    long    t1;
+    double  t2;
+    void   *t3;
+} UAlignedMemory;
+
+/**
+ * Get the amount of bytes that a pointer is off by from
+ * the previous aligned pointer
+ */
+#define U_ALIGNMENT_OFFSET(ptr) (((size_t)ptr) & (sizeof(UAlignedMemory) - 1))
+
+/**
+ * Get the amount of bytes to add to a pointer
+ * in order to get the next aligned address
+ */
+#define U_ALIGNMENT_OFFSET_UP(ptr) (sizeof(UAlignedMemory) - U_ALIGNMENT_OFFSET(ptr))
+
+/**
+  *  Indicate whether the ICU allocation functions have been used.
+  *  This is used to determine whether ICU is in an initial, unused state.
+  */
+U_CFUNC UBool 
+cmemory_inUse(void);
+
+/**
+  *  Heap clean up function, called from u_cleanup()
+  *    Clears any user heap functions from u_setMemoryFunctions()
+  *    Does NOT deallocate any remaining allocated memory.
+  */
+U_CFUNC UBool 
+cmemory_cleanup(void);
+
+#endif
diff --git a/source/common/common.rc b/source/common/common.rc
new file mode 100644
index 0000000..331e542
--- /dev/null
+++ b/source/common/common.rc
@@ -0,0 +1,108 @@
+// Do not edit with Microsoft Developer Studio Resource Editor.
+//   It will permanently substitute version numbers that are intended to be
+//   picked up by the pre-processor during each build.
+// Copyright (c) 2001-2005 International Business Machines
+// Corporation and others. All Rights Reserved.
+//
+#include "msvcres.h"
+
+#define APSTUDIO_READONLY_SYMBOLS
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 2 resource.
+//
+#include <winresrc.h>
+/////////////////////////////////////////////////////////////////////////////
+#undef APSTUDIO_READONLY_SYMBOLS
+
+/////////////////////////////////////////////////////////////////////////////
+// 
+
+LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
+#pragma code_page(1252)
+
+#ifdef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// TEXTINCLUDE
+//
+
+1 TEXTINCLUDE 
+BEGIN
+    "msvcres.h\0"
+END
+
+2 TEXTINCLUDE 
+BEGIN
+    "#include <winresrc.h>\0"
+END
+
+3 TEXTINCLUDE 
+BEGIN
+    "\r\n"
+    "\0"
+END
+
+#endif    // APSTUDIO_INVOKED
+
+
+/////////////////////////////////////////////////////////////////////////////
+//
+// Version
+//
+#define STR(s) #s
+#define CommaVersionString(a, b, c, d) STR(a) ", " STR(b) ", " STR(c) ", " STR(d) "\0"
+
+VS_VERSION_INFO VERSIONINFO
+ FILEVERSION U_ICU_VERSION_MAJOR_NUM, U_ICU_VERSION_MINOR_NUM, U_ICU_VERSION_PATCHLEVEL_NUM, 0
+ PRODUCTVERSION U_ICU_VERSION_MAJOR_NUM, U_ICU_VERSION_MINOR_NUM, U_ICU_VERSION_PATCHLEVEL_NUM, 0
+ FILEFLAGSMASK 0x3fL
+#ifdef _DEBUG
+ FILEFLAGS 0x1L
+#else
+ FILEFLAGS 0x0L
+#endif
+ FILEOS VOS__WINDOWS32
+ FILETYPE VFT_DLL
+ FILESUBTYPE 0x0L
+BEGIN
+    BLOCK "StringFileInfo"
+    BEGIN
+        BLOCK "00000000"
+        BEGIN
+            VALUE "Comments", ICU_WEBSITE "\0"
+            VALUE "CompanyName", "IBM Corporation and others\0"
+            VALUE "FileDescription", "IBM ICU Common DLL\0"
+            VALUE "FileVersion",  CommaVersionString(U_ICU_VERSION_MAJOR_NUM, U_ICU_VERSION_MINOR_NUM, U_ICU_VERSION_PATCHLEVEL_NUM, 0)
+            VALUE "LegalCopyright", U_COPYRIGHT_STRING "\0"
+#ifdef _DEBUG
+            VALUE "OriginalFilename", "icuuc" U_ICU_VERSION_SHORT "d.dll\0")
+#else
+            VALUE "OriginalFilename", "icuuc" U_ICU_VERSION_SHORT ".dll\0")
+#endif
+            VALUE "PrivateBuild", "\0"
+            VALUE "ProductName", "International Components for Unicode\0"
+            VALUE "ProductVersion", CommaVersionString(U_ICU_VERSION_MAJOR_NUM, U_ICU_VERSION_MINOR_NUM, U_ICU_VERSION_PATCHLEVEL_NUM, 0)
+            VALUE "SpecialBuild", "\0"
+        END
+    END
+    BLOCK "VarFileInfo"
+    BEGIN
+        VALUE "Translation", 0x000, 0000
+    END
+END
+
+/////////////////////////////////////////////////////////////////////////////
+
+
+
+#ifndef APSTUDIO_INVOKED
+/////////////////////////////////////////////////////////////////////////////
+//
+// Generated from the TEXTINCLUDE 3 resource.
+//
+
+
+/////////////////////////////////////////////////////////////////////////////
+#endif    // not APSTUDIO_INVOKED
+
diff --git a/source/common/common.vcproj b/source/common/common.vcproj
new file mode 100644
index 0000000..9db336a
--- /dev/null
+++ b/source/common/common.vcproj
@@ -0,0 +1,1996 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+	ProjectType="Visual C++"
+	Version="7.10"
+	Name="common"
+	ProjectGUID="{F0C3266C-B49D-4097-BDBD-EEB592017672}"
+	SccProjectName=""
+	SccLocalPath="">
+	<Platforms>
+		<Platform
+			Name="Win32"/>
+	</Platforms>
+	<Configurations>
+		<Configuration
+			Name="Release|Win32"
+			OutputDirectory=".\..\..\lib"
+			IntermediateDirectory=".\Release"
+			ConfigurationType="2"
+			UseOfMFC="0"
+			ATLMinimizesCRunTimeLibraryUsage="FALSE"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				ImproveFloatingPointConsistency="TRUE"
+				PreprocessorDefinitions="WIN32;NDEBUG;U_COMMON_IMPLEMENTATION"
+				StringPooling="TRUE"
+				RuntimeLibrary="2"
+				EnableFunctionLevelLinking="TRUE"
+				DisableLanguageExtensions="TRUE"
+				PrecompiledHeaderFile=".\Release/common.pch"
+				AssemblerListingLocation=".\Release/"
+				ObjectFile=".\Release/"
+				ProgramDataBaseFileName=".\Release/"
+				BrowseInformation="1"
+				WarningLevel="3"
+				SuppressStartupBanner="TRUE"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				OutputFile="..\..\bin\icuuc33.dll"
+				LinkIncremental="1"
+				SuppressStartupBanner="TRUE"
+				ProgramDatabaseFile=".\..\..\lib\icuuc33.pdb"
+				EnableCOMDATFolding="2"
+				BaseAddress="0x4a800000"
+				ImportLibrary="..\..\lib\icuuc.lib"/>
+			<Tool
+				Name="VCMIDLTool"
+				PreprocessorDefinitions="NDEBUG"
+				MkTypLibCompatible="TRUE"
+				SuppressStartupBanner="TRUE"
+				TargetEnvironment="1"
+				TypeLibraryName=".\..\..\lib\icuuc.tlb"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"
+				PreprocessorDefinitions="NDEBUG"
+				Culture="1033"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+		<Configuration
+			Name="Debug|Win32"
+			OutputDirectory=".\..\..\lib"
+			IntermediateDirectory=".\Debug"
+			ConfigurationType="2"
+			UseOfMFC="0"
+			ATLMinimizesCRunTimeLibraryUsage="FALSE"
+			CharacterSet="2">
+			<Tool
+				Name="VCCLCompilerTool"
+				Optimization="0"
+				ImproveFloatingPointConsistency="TRUE"
+				PreprocessorDefinitions="WIN32;_DEBUG;U_COMMON_IMPLEMENTATION;RBBI_DEBUG"
+				BasicRuntimeChecks="3"
+				RuntimeLibrary="3"
+				BufferSecurityCheck="TRUE"
+				DisableLanguageExtensions="TRUE"
+				PrecompiledHeaderFile=".\Debug/common.pch"
+				AssemblerListingLocation=".\Debug/"
+				ObjectFile=".\Debug/"
+				ProgramDataBaseFileName=".\Debug/"
+				BrowseInformation="1"
+				WarningLevel="3"
+				SuppressStartupBanner="TRUE"
+				DebugInformationFormat="4"/>
+			<Tool
+				Name="VCCustomBuildTool"/>
+			<Tool
+				Name="VCLinkerTool"
+				OutputFile="..\..\bin\icuuc33d.dll"
+				LinkIncremental="2"
+				SuppressStartupBanner="TRUE"
+				GenerateDebugInformation="TRUE"
+				ProgramDatabaseFile=".\..\..\lib\icuuc33d.pdb"
+				BaseAddress="0x4a800000"
+				ImportLibrary="..\..\lib\icuucd.lib"/>
+			<Tool
+				Name="VCMIDLTool"
+				PreprocessorDefinitions="_DEBUG"
+				MkTypLibCompatible="TRUE"
+				SuppressStartupBanner="TRUE"
+				TargetEnvironment="1"
+				TypeLibraryName=".\..\..\lib\icuucd.tlb"/>
+			<Tool
+				Name="VCPostBuildEventTool"/>
+			<Tool
+				Name="VCPreBuildEventTool"/>
+			<Tool
+				Name="VCPreLinkEventTool"/>
+			<Tool
+				Name="VCResourceCompilerTool"
+				PreprocessorDefinitions="_DEBUG"
+				Culture="1033"/>
+			<Tool
+				Name="VCWebServiceProxyGeneratorTool"/>
+			<Tool
+				Name="VCXMLDataGeneratorTool"/>
+			<Tool
+				Name="VCWebDeploymentTool"/>
+			<Tool
+				Name="VCManagedWrapperGeneratorTool"/>
+			<Tool
+				Name="VCAuxiliaryManagedWrapperGeneratorTool"/>
+		</Configuration>
+	</Configurations>
+	<References>
+	</References>
+	<Files>
+		<Filter
+			Name="bidi"
+			Filter="">
+			<File
+				RelativePath=".\ubidi.c">
+			</File>
+			<File
+				RelativePath=".\unicode\ubidi.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\ubidi_props.c">
+			</File>
+			<File
+				RelativePath=".\ubidi_props.h">
+			</File>
+			<File
+				RelativePath=".\ubidiimp.h">
+			</File>
+			<File
+				RelativePath=".\ubidiln.c">
+			</File>
+			<File
+				RelativePath=".\ubidiwrt.c">
+			</File>
+			<File
+				RelativePath=".\ushape.c">
+			</File>
+			<File
+				RelativePath=".\unicode\ushape.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+		</Filter>
+		<Filter
+			Name="break iteration"
+			Filter="">
+			<File
+				RelativePath=".\brkdict.cpp">
+			</File>
+			<File
+				RelativePath=".\brkdict.h">
+			</File>
+			<File
+				RelativePath=".\brkiter.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\brkiter.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\dbbi.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\dbbi.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\dbbi_tbl.cpp">
+			</File>
+			<File
+				RelativePath=".\dbbi_tbl.h">
+			</File>
+			<File
+				RelativePath=".\rbbi.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\rbbi.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\rbbidata.cpp">
+			</File>
+			<File
+				RelativePath=".\rbbidata.h">
+			</File>
+			<File
+				RelativePath=".\rbbinode.cpp">
+			</File>
+			<File
+				RelativePath=".\rbbinode.h">
+			</File>
+			<File
+				RelativePath=".\rbbirb.cpp">
+			</File>
+			<File
+				RelativePath=".\rbbirb.h">
+			</File>
+			<File
+				RelativePath=".\rbbirpt.h">
+			</File>
+			<File
+				RelativePath=".\rbbiscan.cpp">
+			</File>
+			<File
+				RelativePath=".\rbbiscan.h">
+			</File>
+			<File
+				RelativePath=".\rbbisetb.cpp">
+			</File>
+			<File
+				RelativePath=".\rbbisetb.h">
+			</File>
+			<File
+				RelativePath=".\rbbistbl.cpp">
+			</File>
+			<File
+				RelativePath=".\rbbitblb.cpp">
+			</File>
+			<File
+				RelativePath=".\rbbitblb.h">
+			</File>
+			<File
+				RelativePath=".\ubrk.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\ubrk.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+		</Filter>
+		<Filter
+			Name="collation"
+			Filter="">
+			<File
+				RelativePath=".\ucol_swp.c">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories="..\i18n"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCLCompilerTool"
+						AdditionalIncludeDirectories="..\i18n"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\ucol_swp.h">
+			</File>
+		</Filter>
+		<Filter
+			Name="collections"
+			Filter="">
+			<File
+				RelativePath=".\hash.h">
+			</File>
+			<File
+				RelativePath=".\unicode\strenum.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\uarrsort.c">
+			</File>
+			<File
+				RelativePath=".\uarrsort.h">
+			</File>
+			<File
+				RelativePath=".\ucmp8.c">
+			</File>
+			<File
+				RelativePath=".\ucmp8.h">
+			</File>
+			<File
+				RelativePath=".\uenum.c">
+			</File>
+			<File
+				RelativePath=".\unicode\uenum.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\uenumimp.h">
+			</File>
+			<File
+				RelativePath=".\uhash.c">
+			</File>
+			<File
+				RelativePath=".\uhash.h">
+			</File>
+			<File
+				RelativePath=".\uhash_us.cpp">
+			</File>
+			<File
+				RelativePath=".\ustack.cpp">
+			</File>
+			<File
+				RelativePath=".\ustrenum.cpp">
+			</File>
+			<File
+				RelativePath=".\ustrenum.h">
+			</File>
+			<File
+				RelativePath=".\utrie.c">
+			</File>
+			<File
+				RelativePath=".\utrie.h">
+			</File>
+			<File
+				RelativePath=".\uvector.cpp">
+			</File>
+			<File
+				RelativePath=".\uvector.h">
+			</File>
+			<File
+				RelativePath=".\uvectr32.cpp">
+			</File>
+			<File
+				RelativePath=".\uvectr32.h">
+			</File>
+		</Filter>
+		<Filter
+			Name="configuration"
+			Filter="">
+			<File
+				RelativePath=".\common.rc">
+			</File>
+			<File
+				RelativePath=".\cpputils.h">
+			</File>
+			<File
+				RelativePath=".\unicode\docmain.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\filestrm.c">
+			</File>
+			<File
+				RelativePath=".\filestrm.h">
+			</File>
+			<File
+				RelativePath=".\locmap.c">
+			</File>
+			<File
+				RelativePath=".\locmap.h">
+			</File>
+			<File
+				RelativePath=".\mutex.h">
+			</File>
+			<File
+				RelativePath=".\putil.c">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCLCompilerTool"
+						DisableLanguageExtensions="FALSE"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCLCompilerTool"
+						DisableLanguageExtensions="FALSE"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\unicode\putil.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\putilimp.h">
+			</File>
+			<File
+				RelativePath=".\unicode\pwin32.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\uassert.h">
+			</File>
+			<File
+				RelativePath=".\unicode\uconfig.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\unicode\udeprctd.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\unicode\udraft.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\unicode\umachine.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\umutex.c">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCLCompilerTool"
+						DisableLanguageExtensions="FALSE"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCLCompilerTool"
+						DisableLanguageExtensions="FALSE"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\umutex.h">
+			</File>
+			<File
+				RelativePath=".\unicode\uobslete.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\unicode\urename.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\utrace.c">
+			</File>
+			<File
+				RelativePath=".\unicode\utrace.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\utracimp.h">
+			</File>
+			<File
+				RelativePath=".\utypes.c">
+			</File>
+			<File
+				RelativePath=".\unicode\utypes.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\unicode\uversion.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+		</Filter>
+		<Filter
+			Name="conversion"
+			Filter="">
+			<File
+				RelativePath=".\ucnv.c">
+			</File>
+			<File
+				RelativePath=".\unicode\ucnv.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\ucnv2022.c">
+			</File>
+			<File
+				RelativePath=".\ucnv_bld.c">
+			</File>
+			<File
+				RelativePath=".\ucnv_bld.h">
+			</File>
+			<File
+				RelativePath=".\ucnv_cb.c">
+			</File>
+			<File
+				RelativePath=".\unicode\ucnv_cb.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\ucnv_cnv.c">
+			</File>
+			<File
+				RelativePath=".\ucnv_cnv.h">
+			</File>
+			<File
+				RelativePath=".\ucnv_err.c">
+			</File>
+			<File
+				RelativePath=".\unicode\ucnv_err.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\ucnv_ext.c">
+			</File>
+			<File
+				RelativePath=".\ucnv_ext.h">
+			</File>
+			<File
+				RelativePath=".\ucnv_imp.h">
+			</File>
+			<File
+				RelativePath=".\ucnv_io.c">
+			</File>
+			<File
+				RelativePath=".\ucnv_io.h">
+			</File>
+			<File
+				RelativePath=".\ucnv_lmb.c">
+			</File>
+			<File
+				RelativePath=".\ucnv_set.c">
+			</File>
+			<File
+				RelativePath=".\ucnv_u16.c">
+			</File>
+			<File
+				RelativePath=".\ucnv_u32.c">
+			</File>
+			<File
+				RelativePath=".\ucnv_u7.c">
+			</File>
+			<File
+				RelativePath=".\ucnv_u8.c">
+			</File>
+			<File
+				RelativePath=".\ucnvbocu.c">
+			</File>
+			<File
+				RelativePath=".\ucnvdisp.c">
+			</File>
+			<File
+				RelativePath=".\ucnvhz.c">
+			</File>
+			<File
+				RelativePath=".\ucnvisci.c">
+			</File>
+			<File
+				RelativePath=".\ucnvlat1.c">
+			</File>
+			<File
+				RelativePath=".\ucnvmbcs.c">
+			</File>
+			<File
+				RelativePath=".\ucnvmbcs.h">
+			</File>
+			<File
+				RelativePath=".\ucnvscsu.c">
+			</File>
+		</Filter>
+		<Filter
+			Name="data &amp; memory"
+			Filter="">
+			<File
+				RelativePath=".\cmemory.c">
+			</File>
+			<File
+				RelativePath=".\cmemory.h">
+			</File>
+			<File
+				RelativePath=".\unicode\uclean.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\ucln.h">
+			</File>
+			<File
+				RelativePath=".\ucln_cmn.c">
+			</File>
+			<File
+				RelativePath=".\ucln_cmn.h">
+			</File>
+			<File
+				RelativePath=".\ucmndata.c">
+			</File>
+			<File
+				RelativePath=".\ucmndata.h">
+			</File>
+			<File
+				RelativePath=".\udata.c">
+			</File>
+			<File
+				RelativePath=".\unicode\udata.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\udatamem.c">
+			</File>
+			<File
+				RelativePath=".\udatamem.h">
+			</File>
+			<File
+				RelativePath=".\udataswp.c">
+			</File>
+			<File
+				RelativePath=".\udataswp.h">
+			</File>
+			<File
+				RelativePath=".\uinit.c">
+			</File>
+			<File
+				RelativePath=".\umapfile.c">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCLCompilerTool"
+						DisableLanguageExtensions="FALSE"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCLCompilerTool"
+						DisableLanguageExtensions="FALSE"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\umapfile.h">
+			</File>
+			<File
+				RelativePath=".\uobject.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\uobject.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+		</Filter>
+		<Filter
+			Name="formatting"
+			Filter="">
+			<File
+				RelativePath=".\unicode\parseerr.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\parsepos.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\parsepos.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\unicode\umisc.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\ustrfmt.c">
+			</File>
+			<File
+				RelativePath=".\ustrfmt.h">
+			</File>
+			<File
+				RelativePath=".\util.cpp">
+			</File>
+			<File
+				RelativePath=".\util.h">
+			</File>
+		</Filter>
+		<Filter
+			Name="idna"
+			Filter="*.c,*.h">
+			<File
+				RelativePath=".\punycode.c">
+			</File>
+			<File
+				RelativePath=".\punycode.h">
+			</File>
+			<File
+				RelativePath=".\uidna.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\uidna.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+		</Filter>
+		<Filter
+			Name="locales &amp; resources"
+			Filter="">
+			<File
+				RelativePath=".\locbased.cpp">
+			</File>
+			<File
+				RelativePath=".\locbased.h">
+			</File>
+			<File
+				RelativePath=".\locid.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\locid.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\locutil.cpp">
+			</File>
+			<File
+				RelativePath=".\locutil.h">
+			</File>
+			<File
+				RelativePath=".\resbund.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\resbund.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\resbund_cnv.cpp">
+			</File>
+			<File
+				RelativePath=".\ucat.c">
+			</File>
+			<File
+				RelativePath=".\unicode\ucat.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\uloc.c">
+			</File>
+			<File
+				RelativePath=".\unicode\uloc.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\ulocimp.h">
+			</File>
+			<File
+				RelativePath=".\unicode\ures.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\ures_cnv.c">
+			</File>
+			<File
+				RelativePath=".\uresbund.c">
+			</File>
+			<File
+				RelativePath=".\uresdata.c">
+			</File>
+			<File
+				RelativePath=".\uresdata.h">
+			</File>
+			<File
+				RelativePath=".\uresimp.h">
+			</File>
+		</Filter>
+		<Filter
+			Name="normalization"
+			Filter="">
+			<File
+				RelativePath=".\caniter.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\caniter.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\normlzr.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\normlzr.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\unorm.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\unorm.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\unorm_it.c">
+			</File>
+			<File
+				RelativePath=".\unorm_it.h">
+			</File>
+			<File
+				RelativePath=".\unormcmp.cpp">
+			</File>
+			<File
+				RelativePath=".\unormimp.h">
+			</File>
+		</Filter>
+		<Filter
+			Name="properties &amp; sets"
+			Filter="">
+			<File
+				RelativePath=".\propname.cpp">
+			</File>
+			<File
+				RelativePath=".\propname.h">
+			</File>
+			<File
+				RelativePath=".\ruleiter.cpp">
+			</File>
+			<File
+				RelativePath=".\ruleiter.h">
+			</File>
+			<File
+				RelativePath=".\unicode\symtable.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\ucase.c">
+			</File>
+			<File
+				RelativePath=".\ucase.h">
+			</File>
+			<File
+				RelativePath=".\uchar.c">
+			</File>
+			<File
+				RelativePath=".\unicode\uchar.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\unames.c">
+			</File>
+			<File
+				RelativePath=".\unifilt.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\unifilt.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\unifunct.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\unifunct.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\unicode\unimatch.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\uniset.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\uniset.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\uniset_props.cpp">
+			</File>
+			<File
+				RelativePath=".\uprops.c">
+			</File>
+			<File
+				RelativePath=".\uprops.h">
+			</File>
+			<File
+				RelativePath=".\usc_impl.c">
+			</File>
+			<File
+				RelativePath=".\usc_impl.h">
+			</File>
+			<File
+				RelativePath=".\uscript.c">
+			</File>
+			<File
+				RelativePath=".\unicode\uscript.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\uset.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\uset.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\uset_imp.h">
+			</File>
+			<File
+				RelativePath=".\uset_props.cpp">
+			</File>
+			<File
+				RelativePath=".\usetiter.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\usetiter.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+		</Filter>
+		<Filter
+			Name="registration"
+			Filter="">
+			<File
+				RelativePath=".\serv.cpp">
+			</File>
+			<File
+				RelativePath=".\serv.h">
+			</File>
+			<File
+				RelativePath=".\servlk.cpp">
+			</File>
+			<File
+				RelativePath=".\servlkf.cpp">
+			</File>
+			<File
+				RelativePath=".\servloc.h">
+			</File>
+			<File
+				RelativePath=".\servls.cpp">
+			</File>
+			<File
+				RelativePath=".\servnotf.cpp">
+			</File>
+			<File
+				RelativePath=".\servnotf.h">
+			</File>
+			<File
+				RelativePath=".\servrbf.cpp">
+			</File>
+			<File
+				RelativePath=".\servslkf.cpp">
+			</File>
+		</Filter>
+		<Filter
+			Name="sprep"
+			Filter="">
+			<File
+				RelativePath=".\sprpimpl.h">
+			</File>
+			<File
+				RelativePath=".\usprep.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\usprep.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+		</Filter>
+		<Filter
+			Name="strings"
+			Filter="">
+			<File
+				RelativePath=".\chariter.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\chariter.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\charstr.h">
+			</File>
+			<File
+				RelativePath=".\cstring.c">
+			</File>
+			<File
+				RelativePath=".\cstring.h">
+			</File>
+			<File
+				RelativePath=".\cwchar.c">
+			</File>
+			<File
+				RelativePath=".\cwchar.h">
+			</File>
+			<File
+				RelativePath=".\unicode\rep.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\schriter.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\schriter.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\uchriter.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\uchriter.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\uinvchar.c">
+			</File>
+			<File
+				RelativePath=".\uinvchar.h">
+			</File>
+			<File
+				RelativePath=".\uiter.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\uiter.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\unistr.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\unistr.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\unistr_case.cpp">
+			</File>
+			<File
+				RelativePath=".\unistr_cnv.cpp">
+			</File>
+			<File
+				RelativePath=".\unistr_props.cpp">
+			</File>
+			<File
+				RelativePath=".\unicode\urep.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\ustr_cnv.c">
+			</File>
+			<File
+				RelativePath=".\ustr_cnv.h">
+			</File>
+			<File
+				RelativePath=".\ustr_imp.h">
+			</File>
+			<File
+				RelativePath=".\ustr_wcs.c">
+			</File>
+			<File
+				RelativePath=".\ustrcase.c">
+			</File>
+			<File
+				RelativePath=".\ustring.c">
+			</File>
+			<File
+				RelativePath=".\unicode\ustring.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\ustrtrns.c">
+			</File>
+			<File
+				RelativePath=".\unicode\utf.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\unicode\utf16.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\unicode\utf32.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\unicode\utf8.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+			<File
+				RelativePath=".\utf_impl.c">
+			</File>
+			<File
+				RelativePath=".\unicode\utf_old.h">
+				<FileConfiguration
+					Name="Release|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+				<FileConfiguration
+					Name="Debug|Win32">
+					<Tool
+						Name="VCCustomBuildTool"
+						CommandLine="copy &quot;$(InputPath)&quot; ..\..\include\unicode
+"
+						Outputs="..\..\include\unicode\$(InputFileName)"/>
+				</FileConfiguration>
+			</File>
+		</Filter>
+	</Files>
+	<Globals>
+	</Globals>
+</VisualStudioProject>
diff --git a/source/common/cpputils.h b/source/common/cpputils.h
new file mode 100644
index 0000000..de09aea
--- /dev/null
+++ b/source/common/cpputils.h
@@ -0,0 +1,66 @@
+/*
+******************************************************************************
+*
+*   Copyright (C) 1997-2001, International Business Machines
+*   Corporation and others.  All Rights Reserved.
+*
+******************************************************************************
+*   file name:  cpputils.h
+*   encoding:   US-ASCII
+*   tab size:   8 (not used)
+*   indentation:4
+*/
+
+#ifndef CPPUTILS_H
+#define CPPUTILS_H
+
+#include "unicode/utypes.h"
+#include "cmemory.h"
+
+/*==========================================================================*/
+/* Array copy utility functions */
+/*==========================================================================*/
+
+static
+inline void uprv_arrayCopy(const double* src, double* dst, int32_t count)
+{ uprv_memcpy(dst, src, (size_t)(count * sizeof(*src))); }
+
+static
+inline void uprv_arrayCopy(const double* src, int32_t srcStart,
+              double* dst, int32_t dstStart, int32_t count)
+{ uprv_memcpy(dst+dstStart, src+srcStart, (size_t)(count * sizeof(*src))); }
+
+static
+inline void uprv_arrayCopy(const int8_t* src, int8_t* dst, int32_t count)
+    { uprv_memcpy(dst, src, (size_t)(count * sizeof(*src))); }
+
+static
+inline void uprv_arrayCopy(const int8_t* src, int32_t srcStart,
+              int8_t* dst, int32_t dstStart, int32_t count)
+{ uprv_memcpy(dst+dstStart, src+srcStart, (size_t)(count * sizeof(*src))); }
+
+static
+inline void uprv_arrayCopy(const int16_t* src, int16_t* dst, int32_t count)
+{ uprv_memcpy(dst, src, (size_t)(count * sizeof(*src))); }
+
+static
+inline void uprv_arrayCopy(const int16_t* src, int32_t srcStart,
+              int16_t* dst, int32_t dstStart, int32_t count)
+{ uprv_memcpy(dst+dstStart, src+srcStart, (size_t)(count * sizeof(*src))); }
+
+static
+inline void uprv_arrayCopy(const int32_t* src, int32_t* dst, int32_t count)
+{ uprv_memcpy(dst, src, (size_t)(count * sizeof(*src))); }
+
+static
+inline void uprv_arrayCopy(const int32_t* src, int32_t srcStart,
+              int32_t* dst, int32_t dstStart, int32_t count)
+{ uprv_memcpy(dst+dstStart, src+srcStart, (size_t)(count * sizeof(*src))); }
+
+static
+inline void
+uprv_arrayCopy(const UChar *src, int32_t srcStart,
+        UChar *dst, int32_t dstStart, int32_t count)
+{ uprv_memcpy(dst+dstStart, src+srcStart, (size_t)(count * sizeof(*src))); }
+
+#endif /* _CPPUTILS */
diff --git a/source/common/cstring.c b/source/common/cstring.c
new file mode 100644
index 0000000..a5b2c6b
--- /dev/null
+++ b/source/common/cstring.c
@@ -0,0 +1,328 @@
+/*
+******************************************************************************
+*
+*   Copyright (C) 1997-2003, International Business Machines
+*   Corporation and others.  All Rights Reserved.
+*
+******************************************************************************
+*
+* File CSTRING.C
+*
+* @author       Helena Shih
+*
+* Modification History:
+*
+*   Date        Name        Description
+*   6/18/98     hshih       Created
+*   09/08/98    stephen     Added include for ctype, for Mac Port
+*   11/15/99    helena      Integrated S/390 IEEE changes. 
+******************************************************************************
+*/
+
+
+
+#include <stdlib.h>
+#include <stdio.h>
+#include "unicode/utypes.h"
+#include "cmemory.h"
+#include "cstring.h"
+#include "uassert.h"
+
+/*
+ * We hardcode case conversion for invariant characters to match our expectation
+ * and the compiler execution charset.
+ * This prevents problems on systems
+ * - with non-default casing behavior, like Turkish system locales where
+ *   tolower('I') maps to dotless i and toupper('i') maps to dotted I
+ * - where there are no lowercase Latin characters at all, or using different
+ *   codes (some old EBCDIC codepages)
+ *
+ * This works because the compiler usually runs on a platform where the execution
+ * charset includes all of the invariant characters at their expected
+ * code positions, so that the char * string literals in ICU code match
+ * the char literals here.
+ *
+ * Note that the set of lowercase Latin letters is discontiguous in EBCDIC
+ * and the set of uppercase Latin letters is discontiguous as well.
+ */
+
+U_CAPI char U_EXPORT2
+uprv_toupper(char c) {
+#if U_CHARSET_FAMILY==U_EBCDIC_FAMILY
+    if(('a'<=c && c<='i') || ('j'<=c && c<='r') || ('s'<=c && c<='z')) {
+        c=(char)(c+('A'-'a'));
+    }
+#else
+    if('a'<=c && c<='z') {
+        c=(char)(c+('A'-'a'));
+    }
+#endif
+    return c;
+}
+
+
+#if 0
+/*
+ * Commented out because cstring.h defines uprv_tolower() to be
+ * the same as either uprv_asciitolower() or uprv_ebcdictolower()
+ * to reduce the amount of code to cover with tests.
+ *
+ * Note that this uprv_tolower() definition is likely to work for most
+ * charset families, not just ASCII and EBCDIC, because its #else branch
+ * is written generically.
+ */
+U_CAPI char U_EXPORT2
+uprv_tolower(char c) {
+#if U_CHARSET_FAMILY==U_EBCDIC_FAMILY
+    if(('A'<=c && c<='I') || ('J'<=c && c<='R') || ('S'<=c && c<='Z')) {
+        c=(char)(c+('a'-'A'));
+    }
+#else
+    if('A'<=c && c<='Z') {
+        c=(char)(c+('a'-'A'));
+    }
+#endif
+    return c;
+}
+#endif
+
+U_CAPI char U_EXPORT2
+uprv_asciitolower(char c) {
+    if(0x41<=c && c<=0x5a) {
+        c=(char)(c+0x20);
+    }
+    return c;
+}
+
+U_CAPI char U_EXPORT2
+uprv_ebcdictolower(char c) {
+    if( (0xc1<=(uint8_t)c && (uint8_t)c<=0xc9) ||
+        (0xd1<=(uint8_t)c && (uint8_t)c<=0xd9) ||
+        (0xe2<=(uint8_t)c && (uint8_t)c<=0xe9)
+    ) {
+        c=(char)(c-0x40);
+    }
+    return c;
+}
+
+
+U_CAPI char* U_EXPORT2
+T_CString_toLowerCase(char* str)
+{
+    char* origPtr = str;
+
+    if (str) {
+        do
+            *str = (char)uprv_tolower(*str);
+        while (*(str++));
+    }
+
+    return origPtr;
+}
+
+U_CAPI char* U_EXPORT2
+T_CString_toUpperCase(char* str)
+{
+    char* origPtr = str;
+
+    if (str) {
+        do
+            *str = (char)uprv_toupper(*str);
+        while (*(str++));
+    }
+
+    return origPtr;
+}
+
+/*
+ * Takes a int32_t and fills in  a char* string with that number "radix"-based.
+ * Does not handle negative values (makes an empty string for them).
+ * Writes at most 12 chars ("-2147483647" plus NUL).
+ * Returns the length of the string (not including the NUL).
+ */
+U_CAPI int32_t U_EXPORT2
+T_CString_integerToString(char* buffer, int32_t v, int32_t radix)
+{
+    char      tbuf[30];
+    int32_t   tbx    = sizeof(tbuf);
+    uint8_t   digit;
+    int32_t   length = 0;
+    uint32_t  uval;
+    
+    U_ASSERT(radix>=2 && radix<=16);
+    uval = (uint32_t) v;
+    if(v<0 && radix == 10) {
+        /* Only in base 10 do we conside numbers to be signed. */
+        uval = (uint32_t)(-v); 
+        buffer[length++] = '-';
+    }
+    
+    tbx = sizeof(tbuf)-1;
+    tbuf[tbx] = 0;   /* We are generating the digits backwards.  Null term the end. */
+    do {
+        digit = (uint8_t)(uval % radix);
+        tbuf[--tbx] = (char)(T_CString_itosOffset(digit));
+        uval  = uval / radix;
+    } while (uval != 0);
+    
+    /* copy converted number into user buffer  */
+    uprv_strcpy(buffer+length, tbuf+tbx);
+    length += sizeof(tbuf) - tbx -1;
+    return length;
+}
+
+
+
+/*
+ * Takes a int64_t and fills in  a char* string with that number "radix"-based.
+ * Writes at most 21: chars ("-9223372036854775807" plus NUL).
+ * Returns the length of the string, not including the terminating NULL.
+ */
+U_CAPI int32_t U_EXPORT2
+T_CString_int64ToString(char* buffer, int64_t v, uint32_t radix)
+{
+    char      tbuf[30];
+    int32_t   tbx    = sizeof(tbuf);
+    uint8_t   digit;
+    int32_t   length = 0;
+    uint64_t  uval;
+    
+    U_ASSERT(radix>=2 && radix<=16);
+    uval = (uint64_t) v;
+    if(v<0 && radix == 10) {
+        /* Only in base 10 do we conside numbers to be signed. */
+        uval = (uint64_t)(-v); 
+        buffer[length++] = '-';
+    }
+    
+    tbx = sizeof(tbuf)-1;
+    tbuf[tbx] = 0;   /* We are generating the digits backwards.  Null term the end. */
+    do {
+        digit = (uint8_t)(uval % radix);
+        tbuf[--tbx] = (char)(T_CString_itosOffset(digit));
+        uval  = uval / radix;
+    } while (uval != 0);
+    
+    /* copy converted number into user buffer  */
+    uprv_strcpy(buffer+length, tbuf+tbx);
+    length += sizeof(tbuf) - tbx -1;
+    return length;
+}
+
+
+U_CAPI int32_t U_EXPORT2
+T_CString_stringToInteger(const char *integerString, int32_t radix)
+{
+    char *end;
+    return uprv_strtoul(integerString, &end, radix);
+
+}
+    
+U_CAPI int U_EXPORT2
+T_CString_stricmp(const char *str1, const char *str2) {
+    if(str1==NULL) {
+        if(str2==NULL) {
+            return 0;
+        } else {
+            return -1;
+        }
+    } else if(str2==NULL) {
+        return 1;
+    } else {
+        /* compare non-NULL strings lexically with lowercase */
+        int rc;
+        unsigned char c1, c2;
+
+        for(;;) {
+            c1=(unsigned char)*str1;
+            c2=(unsigned char)*str2;
+            if(c1==0) {
+                if(c2==0) {
+                    return 0;
+                } else {
+                    return -1;
+                }
+            } else if(c2==0) {
+                return 1;
+            } else {
+                /* compare non-zero characters with lowercase */
+                rc=(int)(unsigned char)uprv_tolower(c1)-(int)(unsigned char)uprv_tolower(c2);
+                if(rc!=0) {
+                    return rc;
+                }
+            }
+            ++str1;
+            ++str2;
+        }
+    }
+}
+
+U_CAPI int U_EXPORT2
+T_CString_strnicmp(const char *str1, const char *str2, uint32_t n) {
+    if(str1==NULL) {
+        if(str2==NULL) {
+            return 0;
+        } else {
+            return -1;
+        }
+    } else if(str2==NULL) {
+        return 1;
+    } else {
+        /* compare non-NULL strings lexically with lowercase */
+        int rc;
+        unsigned char c1, c2;
+
+        for(; n--;) {
+            c1=(unsigned char)*str1;
+            c2=(unsigned char)*str2;
+            if(c1==0) {
+                if(c2==0) {
+                    return 0;
+                } else {
+                    return -1;
+                }
+            } else if(c2==0) {
+                return 1;
+            } else {
+                /* compare non-zero characters with lowercase */
+                rc=(int)(unsigned char)uprv_tolower(c1)-(int)(unsigned char)uprv_tolower(c2);
+                if(rc!=0) {
+                    return rc;
+                }
+            }
+            ++str1;
+            ++str2;
+        }
+    }
+
+    return 0;
+}
+
+U_CAPI char* U_EXPORT2
+uprv_strdup(const char *src) {
+    size_t len = uprv_strlen(src) + 1;
+    char *dup = (char *) uprv_malloc(len);
+
+    if (dup) {
+        uprv_memcpy(dup, src, len);
+    }
+
+    return dup;
+}
+
+U_CAPI char* U_EXPORT2
+uprv_strndup(const char *src, int32_t n) {
+    char *dup;
+
+    if(n < 0) {
+        dup = uprv_strdup(src);
+    } else {
+        dup = (char*)uprv_malloc(n+1);
+        if (dup) { 
+            uprv_memcpy(dup, src, n);
+            dup[n] = 0;
+        }
+    }
+
+    return dup;
+}
diff --git a/source/common/cstring.h b/source/common/cstring.h
new file mode 100644
index 0000000..6d2fd0e
--- /dev/null
+++ b/source/common/cstring.h
@@ -0,0 +1,120 @@
+/*
+******************************************************************************
+*
+*   Copyright (C) 1997-2005, International Business Machines
+*   Corporation and others.  All Rights Reserved.
+*
+******************************************************************************
+*
+* File CSTRING.H
+*
+* Contains CString interface
+*
+* @author       Helena Shih
+*
+* Modification History:
+*
+*   Date        Name        Description
+*   6/17/98     hshih       Created.
+*  05/03/99     stephen     Changed from functions to macros.
+*  06/14/99     stephen     Added icu_strncat, icu_strncmp, icu_tolower
+*
+******************************************************************************
+*/
+
+#ifndef CSTRING_H
+#define CSTRING_H 1
+
+#include "unicode/utypes.h"
+#include <string.h>
+#include <stdlib.h>
+#include <ctype.h>
+
+#define uprv_strcpy(dst, src) U_STANDARD_CPP_NAMESPACE  strcpy(dst, src)
+#define uprv_strncpy(dst, src, size) U_STANDARD_CPP_NAMESPACE strncpy(dst, src, size)
+#define uprv_strlen(str) U_STANDARD_CPP_NAMESPACE strlen(str)
+#define uprv_strcmp(s1, s2) U_STANDARD_CPP_NAMESPACE strcmp(s1, s2)
+#define uprv_strncmp(s1, s2, n) U_STANDARD_CPP_NAMESPACE strncmp(s1, s2, n)
+#define uprv_strcat(dst, src) U_STANDARD_CPP_NAMESPACE strcat(dst, src)
+#define uprv_strncat(dst, src, n) U_STANDARD_CPP_NAMESPACE strncat(dst, src, n)
+#define uprv_strchr(s, c) U_STANDARD_CPP_NAMESPACE strchr(s, c)
+#define uprv_strstr(s, c) U_STANDARD_CPP_NAMESPACE strstr(s, c)
+#define uprv_strrchr(s, c) U_STANDARD_CPP_NAMESPACE strrchr(s, c)
+
+U_CAPI char U_EXPORT2
+uprv_toupper(char c);
+
+
+U_CAPI char U_EXPORT2
+uprv_asciitolower(char c);
+
+U_CAPI char U_EXPORT2
+uprv_ebcdictolower(char c);
+
+#if U_CHARSET_FAMILY==U_ASCII_FAMILY
+#   define uprv_tolower uprv_asciitolower
+#elif U_CHARSET_FAMILY==U_EBCDIC_FAMILY
+#   define uprv_tolower uprv_ebcdictolower
+#else
+#   error U_CHARSET_FAMILY is not valid
+#endif
+
+#define uprv_strtod(source, end) U_STANDARD_CPP_NAMESPACE strtod(source, end)
+#define uprv_strtoul(str, end, base) U_STANDARD_CPP_NAMESPACE strtoul(str, end, base)
+#define uprv_strtol(str, end, base) U_STANDARD_CPP_NAMESPACE strtol(str, end, base)
+#ifdef U_WINDOWS
+#   if defined(__BORLANDC__)
+#       define uprv_stricmp(str1, str2) U_STANDARD_CPP_NAMESPACE stricmp(str1, str2)
+#       define uprv_strnicmp(str1, str2, n) U_STANDARD_CPP_NAMESPACE strnicmp(str1, str2, n)
+#   else
+#       define uprv_stricmp(str1, str2) U_STANDARD_CPP_NAMESPACE _stricmp(str1, str2)
+#       define uprv_strnicmp(str1, str2, n) U_STANDARD_CPP_NAMESPACE _strnicmp(str1, str2, n)
+#   endif
+#elif defined(POSIX) 
+#   define uprv_stricmp(str1, str2) U_STANDARD_CPP_NAMESPACE strcasecmp(str1, str2) 
+#   define uprv_strnicmp(str1, str2, n) U_STANDARD_CPP_NAMESPACE strncasecmp(str1, str2, n) 
+#else
+#   define uprv_stricmp(str1, str2) T_CString_stricmp(str1, str2)
+#   define uprv_strnicmp(str1, str2, n) T_CString_strnicmp(str1, str2, n)
+#endif
+
+/* Conversion from a digit to the character with radix base from 2-19 */
+/* May need to use U_UPPER_ORDINAL*/
+#define T_CString_itosOffset(a) ((a)<=9?('0'+(a)):('A'+(a)-10))
+
+U_CAPI char* U_EXPORT2
+uprv_strdup(const char *src);
+
+/**
+ * uprv_malloc n+1 bytes, and copy n bytes from src into the new string.
+ * Terminate with a null at offset n.   If n is -1, works like uprv_strdup
+ * @param src
+ * @param n length of the input string, not including null.
+ * @return new string (owned by caller, use uprv_free to free).
+ * @internal
+ */
+U_CAPI char* U_EXPORT2
+uprv_strndup(const char *src, int32_t n);
+
+U_CAPI char* U_EXPORT2
+T_CString_toLowerCase(char* str);
+
+U_CAPI char* U_EXPORT2
+T_CString_toUpperCase(char* str);
+
+U_CAPI int32_t U_EXPORT2
+T_CString_integerToString(char *buffer, int32_t n, int32_t radix);
+
+U_CAPI int32_t U_EXPORT2
+T_CString_int64ToString(char *buffer, int64_t n, uint32_t radix);
+
+U_CAPI int32_t U_EXPORT2
+T_CString_stringToInteger(const char *integerString, int32_t radix);
+
+U_CAPI int U_EXPORT2
+T_CString_stricmp(const char *str1, const char *str2);
+
+U_CAPI int U_EXPORT2
+T_CString_strnicmp(const char *str1, const char *str2, uint32_t n);
+
+#endif /* ! CSTRING_H */
diff --git a/source/common/cwchar.c b/source/common/cwchar.c
new file mode 100644
index 0000000..78bb8c5
--- /dev/null
+++ b/source/common/cwchar.c
@@ -0,0 +1,53 @@
+/*  
+******************************************************************************
+*
+*   Copyright (C) 2001, International Business Machines
+*   Corporation and others.  All Rights Reserved.
+*
+******************************************************************************
+*   file name:  cwchar.c
+*   encoding:   US-ASCII
+*   tab size:   8 (not used)
+*   indentation:4
+*
+*   created on: 2001may25
+*   created by: Markus W. Scherer
+*/
+
+#include "unicode/utypes.h"
+
+#if !U_HAVE_WCSCPY
+
+#include "cwchar.h"
+
+U_CAPI wchar_t *uprv_wcscat(wchar_t *dst, const wchar_t *src) {
+    wchar_t *start=dst;
+    while(*dst!=0) {
+        ++dst;
+    }
+    while((*dst=*src)!=0) {
+        ++dst;
+        ++src;
+    }
+    return start;
+}
+
+U_CAPI wchar_t *uprv_wcscpy(wchar_t *dst, const wchar_t *src) {
+    wchar_t *start=dst;
+    while((*dst=*src)!=0) {
+        ++dst;
+        ++src;
+    }
+    return start;
+}
+
+U_CAPI size_t uprv_wcslen(const wchar_t *src) {
+    const wchar_t *start=src;
+    while(*src!=0) {
+        ++src;
+    }
+    return src-start;
+}
+
+#endif
+
diff --git a/source/common/cwchar.h b/source/common/cwchar.h
new file mode 100644
index 0000000..2ab36c0
--- /dev/null
+++ b/source/common/cwchar.h
@@ -0,0 +1,56 @@
+/*  
+******************************************************************************
+*
+*   Copyright (C) 2001, International Business Machines
+*   Corporation and others.  All Rights Reserved.
+*
+******************************************************************************
+*   file name:  cwchar.h
+*   encoding:   US-ASCII
+*   tab size:   8 (not used)
+*   indentation:4
+*
+*   created on: 2001may25
+*   created by: Markus W. Scherer
+*
+*   This file contains ICU-internal definitions of wchar_t operations.
+*   These definitions were moved here from cstring.h so that fewer
+*   ICU implementation files include wchar.h.
+*/
+
+#ifndef __CWCHAR_H__
+#define __CWCHAR_H__
+
+#include <string.h>
+#include <stdlib.h>
+#include "unicode/utypes.h"
+
+/* Do this after utypes.h so that we have U_HAVE_WCHAR_H . */
+#if U_HAVE_WCHAR_H
+#   include <wchar.h>
+#endif
+
+/*===========================================================================*/
+/* Wide-character functions                                                  */
+/*===========================================================================*/
+
+/* The following are not available on all systems, defined in wchar.h or string.h. */
+#if U_HAVE_WCSCPY
+#   define uprv_wcscpy wcscpy
+#   define uprv_wcscat wcscat
+#   define uprv_wcslen wcslen
+#else
+U_CAPI wchar_t* U_EXPORT2 
+uprv_wcscpy(wchar_t *dst, const wchar_t *src);
+U_CAPI wchar_t* U_EXPORT2 
+uprv_wcscat(wchar_t *dst, const wchar_t *src);
+U_CAPI size_t U_EXPORT2 
+uprv_wcslen(const wchar_t *src);
+#endif
+
+/* The following are part of the ANSI C standard, defined in stdlib.h . */
+#define uprv_wcstombs(mbstr, wcstr, count) U_STANDARD_CPP_NAMESPACE wcstombs(mbstr, wcstr, count)
+#define uprv_mbstowcs(wcstr, mbstr, count) U_STANDARD_CPP_NAMESPACE mbstowcs(wcstr, mbstr, count)
+
+
+#endif
diff --git a/source/common/dbbi.cpp b/source/common/dbbi.cpp
new file mode 100644
index 0000000..2f83f6c
--- /dev/null
+++ b/source/common/dbbi.cpp
@@ -0,0 +1,629 @@
+/*
+**********************************************************************
+*   Copyright (C) 1999-2004 IBM Corp. All rights reserved.
+**********************************************************************
+*   Date        Name        Description
+*   12/1/99    rgillam     Complete port from Java.
+*   01/13/2000 helena      Added UErrorCode to ctors.
+**********************************************************************
+*/
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_BREAK_ITERATION
+
+#include "unicode/dbbi.h"
+#include "unicode/schriter.h"
+#include "dbbi_tbl.h"
+#include "uvector.h"
+#include "cmemory.h"
+#include "uassert.h"
+
+U_NAMESPACE_BEGIN
+
+UOBJECT_DEFINE_RTTI_IMPLEMENTATION(DictionaryBasedBreakIterator)
+
+
+//------------------------------------------------------------------------------
+//
+// constructors
+//
+//------------------------------------------------------------------------------
+
+DictionaryBasedBreakIterator::DictionaryBasedBreakIterator() :
+RuleBasedBreakIterator() {
+    init();
+}
+
+
+DictionaryBasedBreakIterator::DictionaryBasedBreakIterator(UDataMemory* rbbiData,
+                                                           const char* dictionaryFilename, 
+                                                           UErrorCode& status)
+: RuleBasedBreakIterator(rbbiData, status)
+{
+    init();
+    if (U_FAILURE(status)) {return;};
+    fTables = new DictionaryBasedBreakIteratorTables(dictionaryFilename, status);
+    if (U_FAILURE(status)) {
+        if (fTables != NULL) {
+            fTables->removeReference();
+            fTables = NULL;
+        }
+        return;
+    }
+    /* test for NULL */
+    if(fTables == 0) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return;
+    }
+}
+
+
+DictionaryBasedBreakIterator::DictionaryBasedBreakIterator(const DictionaryBasedBreakIterator &other) :
+RuleBasedBreakIterator(other)
+{
+    init();
+    if (other.fTables != NULL) {
+        fTables = other.fTables;
+        fTables->addReference();
+    }
+}
+
+
+
+
+//------------------------------------------------------------------------------
+//
+//   Destructor
+//
+//------------------------------------------------------------------------------
+DictionaryBasedBreakIterator::~DictionaryBasedBreakIterator()
+{
+    uprv_free(cachedBreakPositions);
+    cachedBreakPositions = NULL;
+    if (fTables != NULL) {fTables->removeReference();};
+}
+
+//------------------------------------------------------------------------------
+//
+//   Assignment operator.     Sets this iterator to have the same behavior,
+//                            and iterate over the same text, as the one passed in.
+//
+//------------------------------------------------------------------------------
+DictionaryBasedBreakIterator&
+DictionaryBasedBreakIterator::operator=(const DictionaryBasedBreakIterator& that) {
+    if (this == &that) {
+        return *this;
+    }
+    reset();      // clears out cached break positions.
+    RuleBasedBreakIterator::operator=(that);
+    if (this->fTables != that.fTables) {
+        if (this->fTables != NULL) {this->fTables->removeReference();};
+        this->fTables = that.fTables;
+        if (this->fTables != NULL) {this->fTables->addReference();};
+    }
+    return *this;
+}
+
+//------------------------------------------------------------------------------
+//
+//   Clone()    Returns a newly-constructed RuleBasedBreakIterator with the same
+//              behavior, and iterating over the same text, as this one.
+//
+//------------------------------------------------------------------------------
+BreakIterator*
+DictionaryBasedBreakIterator::clone() const {
+    return new DictionaryBasedBreakIterator(*this);
+}
+
+//=======================================================================
+// BreakIterator overrides
+//=======================================================================
+
+/**
+ * Advances the iterator one step backwards.
+ * @return The position of the last boundary position before the
+ * current iteration position
+ */
+int32_t
+DictionaryBasedBreakIterator::previous()
+{
+    // if we have cached break positions and we're still in the range
+    // covered by them, just move one step backward in the cache
+    if (cachedBreakPositions != NULL && positionInCache > 0) {
+        --positionInCache;
+        fText->setIndex(cachedBreakPositions[positionInCache]);
+        return cachedBreakPositions[positionInCache];
+    }
+
+    // otherwise, dump the cache and use the inherited previous() method to move
+    // backward.  This may fill up the cache with new break positions, in which
+    // case we have to mark our position in the cache
+    else {
+        reset();
+        int32_t result = RuleBasedBreakIterator::previous();
+        if (cachedBreakPositions != NULL) {
+            for (positionInCache=0; 
+                cachedBreakPositions[positionInCache] != result;
+                positionInCache++);
+            U_ASSERT(positionInCache < numCachedBreakPositions);
+            if (positionInCache >= numCachedBreakPositions) {
+                // Something has gone wrong.  Dump the cache.
+                reset();
+            }
+        }
+        return result;
+    }
+}
+
+/**
+ * Sets the current iteration position to the last boundary position
+ * before the specified position.
+ * @param offset The position to begin searching from
+ * @return The position of the last boundary before "offset"
+ */
+int32_t
+DictionaryBasedBreakIterator::preceding(int32_t offset)
+{
+    // if the offset passed in is already past the end of the text,
+    // just return DONE; if it's before the beginning, return the
+    // text's starting offset
+    if (fText == NULL || offset > fText->endIndex()) {
+        return BreakIterator::DONE;
+    }
+    else if (offset < fText->startIndex()) {
+        return fText->startIndex();
+    }
+
+    // if we have no cached break positions, or "offset" is outside the
+    // range covered by the cache, we can just call the inherited routine
+    // (which will eventually call other routines in this class that may
+    // refresh the cache)
+    if (cachedBreakPositions == NULL || offset <= cachedBreakPositions[0] ||
+            offset > cachedBreakPositions[numCachedBreakPositions - 1]) {
+        reset();
+        return RuleBasedBreakIterator::preceding(offset);
+    }